9x9 Everest 2012.txt
Order 3: digits 9; houses 27, cells 81.
Grid.grid1: initial copying
pending={a1, b3, b4, c2, c5, c7, d2, d6, e5, e6, e7, f4, f8, g3, g8, g9, h3, h4, h8, i2, i7}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1: naked-pairs
two's heap=h7 {3|9}.
grid1
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
|
|
| 1
|
|
|
|
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
|
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid1 → grid2: h7 guess 3 ∈ {3|9}
pending={h7}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2: naked-pairs
two's heap=g7 {5|9}.
grid2
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
|
|
| 1
|
|
|
|
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid2 → grid3: g7 guess 5 ∈ {5|9}
pending={g7}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3.rowf. f9 is 5 by hidden-single.
pending={f9}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3.box9. h9 is 9 by hidden-single.
pending={h9}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3: naked-pairs
two's heap=i8 {2|7}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
- i1: {2|3|5|6|7} → {3|5|6}.
- i3: {2|5|6|7} → {5|6}.
- i4: {2|3|7|8} → {3|8}.
- i5: {1|2|3|6|7|8} → {1|3|6|8}.
- i6: {1|2|3|6|8} → {1|3|6|8}.
grid3
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid3 → grid4: i3 guess 5 ∈ {5|6}
pending={i3}
deduce.grid4: naked-singles
deduce.grid4: hidden-singles
deduce.grid4.col3. f3 is 7 by hidden-single.
pending={f3}
deduce.grid4: naked-singles
deduce.grid4: hidden-singles
deduce.grid4: naked-pairs
two's heap=i1 {3|6}, c3 {4|6}, i4 {3|8}, i8 {2|7}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid4
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid4 → grid5: c3 guess 4 ∈ {4|6}
pending={c3}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5: naked-pairs
two's heap=b2 {1|2}, i1 {3|6}, i8 {2|7}, c4 {3|8}, i4 {3|8}, c8 {5|8}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
Naked-pair {3|8} in cells {c4, i4} contained within {col4}, updating cells {a4, d4, e4, g4}:
- a4: {2|3|4|7} → {2|4|7}.
- d4: {2|3|8|9} → {2|9}.
- e4: {2|3|8|9} → {2|9}.
- g4: {2|3|4|7|9} → {2|4|7|9}.
grid5
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 4
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid5 → grid6: b2 guess 1 ∈ {1|2}
pending={b2}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6.box5. d5 is 3 by hidden-single.
pending={d5}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6: naked-pairs
two's heap=a2 {2|6}, i1 {3|6}, i8 {2|7}, g5 {2|7}, c1 {5|6}, i9 {2|7}, d4 {2|9}, b7 {8|9}, e4 {2|9}, c4 {3|8}, i4 {3|8}, c8 {5|8}, b9 {4|7}.
Naked-pair {2|7} in cells {g5, i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
Naked-pair {3|8} in cells {c4, i4} contained within {col4}, updating cells {a4, d4, e4, g4}:
Naked-pair {2|9} in cells {d4, e4} contained within {col4, box5}, updating cells {a4, c4, f5, f6, g4, i4}:
- a4: {2|4|7} → {4|7}.
- f5: {2|6|8} → {6|8}.
- f6: {2|6|8|9} → {6|8}.
- g4: {2|4|7|9} → {4|7}.
grid6
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
| 1
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 4
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
| 3
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid6 → grid7: a2 guess 2 ∈ {2|6}
pending={a2}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
deduce.grid7.rowf. f1 is 2 by hidden-single.
pending={f1}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
deduce.grid7.rowf. f2 is 4 by hidden-single.
deduce.grid7.rowf. f7 is 9 by hidden-single.
pending={f2, f7}
deduce.grid7: naked-singles
- b7 is 8 by naked-single.
pending={b7}
- c8 is 5 by naked-single.
pending={c8}
- c1 is 6 by naked-single.
pending={c1}
- a3 is 9 by naked-single.
pending={a3}
- b1 is 5 by naked-single.
pending={b1}
- d3 is 6 by naked-single.
pending={d3}
- d7 is 1 by naked-single.
pending={d7}
- a7 is 6 by naked-single.
pending={a7}
- d1 is 9 by naked-single.
pending={d1}
- d4 is 2 by naked-single.
pending={d4}
- d9 is 4 by naked-single.
pending={d9}
- b9 is 7 by naked-single.
pending={b9}
- a8 is 4 by naked-single.
pending={a8}
- a4 is 7 by naked-single.
pending={a4}
- b5 is 2 by naked-single.
pending={b5}
- b6 is 4 by naked-single.
pending={b6}
- b8 is 9 by naked-single.
pending={b8}
- d8 is 8 by naked-single.
pending={d8}
grid7 didn't work: naked-singles ran out of candidates.
…backtrack.grid6 again
backtrack.grid6 → grid8: a2 guess 6 ∈ {2|6}
pending={a2}
deduce.grid8: naked-singles
- c1 is 5 by naked-single.
pending={c1}
- c8 is 8 by naked-single.
pending={c8}
- b7 is 9 by naked-single.
pending={b7}
- a7 is 1 by naked-single.
pending={a7}
- b1 is 2 by naked-single.
pending={b1}
- a3 is 9 by naked-single.
pending={a3}
- c4 is 3 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- c9 is 6 by naked-single.
pending={c9}
- i4 is 8 by naked-single.
pending={i4}
deduce.grid8: hidden-singles
deduce.grid8.rowa. a9 is 3 by hidden-single.
pending={a9}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8.rowd. d7 is 8 by hidden-single.
pending={d7}
deduce.grid8: naked-singles
- f7 is 6 by naked-single.
pending={f7}
- f5 is 8 by naked-single.
pending={f5}
grid8 didn't work: naked-singles ran out of candidates.
…backtrack.grid6 again
grid6 didn't work: exhaustive search revealed no solution.
…backtrack.grid5 again
backtrack.grid5 → grid9: b2 guess 2 ∈ {1|2}
pending={b2}
deduce.grid9: naked-singles
deduce.grid9: hidden-singles
deduce.grid9.box5. d5 is 3 by hidden-single.
pending={d5}
deduce.grid9: naked-singles
deduce.grid9: hidden-singles
deduce.grid9: naked-pairs
two's heap=g2 {3|4}, i1 {3|6}, a2 {1|6}, g5 {2|7}, h2 {4|6}, i8 {2|7}, c4 {3|8}, a3 {6|9}, c8 {5|8}, d4 {2|9}, i4 {3|8}, e4 {2|9}, i9 {2|7}.
Naked-pair {2|7} in cells {g5, i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
Naked-pair {3|8} in cells {c4, i4} contained within {col4}, updating cells {a4, d4, e4, g4}:
Naked-pair {2|9} in cells {d4, e4} contained within {col4, box5}, updating cells {a4, c4, f5, f6, g4, i4}:
- a4: {2|4|7} → {4|7}.
- f5: {2|6|8} → {6|8}.
- f6: {2|6|8|9} → {6|8}.
- g4: {2|4|7|9} → {4|7}.
grid9
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
| 2
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 4
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
| 3
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid9 → grid10: a2 guess 1 ∈ {1|6}
pending={a2}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowf. f1 is 2 by hidden-single.
pending={f1}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowf. f2 is 4 by hidden-single.
deduce.grid10.rowf. f7 is 9 by hidden-single.
pending={f2, f7}
deduce.grid10: naked-singles
- a7 is 6 by naked-single.
pending={a7}
- a3 is 9 by naked-single.
pending={a3}
- b1 is 5 by naked-single.
pending={b1}
- c1 is 6 by naked-single.
pending={c1}
- d3 is 6 by naked-single.
pending={d3}
grid10 didn't work: naked-singles ran out of candidates.
…backtrack.grid9 again
backtrack.grid9 → grid11: a2 guess 6 ∈ {1|6}
pending={a2}
deduce.grid11: naked-singles
- a3 is 9 by naked-single.
pending={a3}
- a7 is 1 by naked-single.
pending={a7}
- h2 is 4 by naked-single.
pending={h2}
- f2 is 8 by naked-single.
pending={f2}
- f5 is 6 by naked-single.
pending={f5}
grid11 didn't work: naked-singles ran out of candidates.
…backtrack.grid9 again
grid9 didn't work: exhaustive search revealed no solution.
…backtrack.grid5 again
grid5 didn't work: exhaustive search revealed no solution.
…backtrack.grid4 again
backtrack.grid4 → grid12: c3 guess 6 ∈ {4|6}
pending={c3}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12: naked-pairs
two's heap=i1 {3|6}, i8 {2|7}, i4 {3|8}, e3 {2|9}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid12
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid12 → grid13: e3 guess 2 ∈ {2|9}
pending={e3}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13: naked-pairs
two's heap=e9 {1|6}, i1 {3|6}, i8 {2|7}, i9 {2|7}, a3 {4|9}, e8 {8|9}, i4 {3|8}, d3 {4|9}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid13
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
| 2
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid13 → grid14: a3 guess 4 ∈ {4|9}
pending={a3}
deduce.grid14: naked-singles
- d3 is 9 by naked-single.
pending={d3}
deduce.grid14: hidden-singles
deduce.grid14.col1. b1 is 9 by hidden-single.
pending={b1}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.col1. c1 is 5 by hidden-single.
pending={c1}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14: naked-pairs
two's heap=a2 {1|2}, b2 {1|2}, e9 {1|6}, i1 {3|6}, i8 {2|7}, b7 {1|8}, f1 {4|6}, c8 {4|8}, i4 {3|8}, e8 {8|9}, i9 {2|7}.
Naked-pair {1|2} in cells {a2, b2} contained within {col2, box1}, updating cells {e2, f2, g2, h2}:
- e2: {1|3|6|8} → {3|6|8}.
- g2: {2|3|4} → {3|4}.
- h2: {2|4|6} → {4|6}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid14
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
| 4
|
|
|
|
|
|
|
| b
| 9
|
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
| 9
|
|
| 7
|
|
|
|
| e
|
|
| 2
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid14 → grid15: a2 guess 1 ∈ {1|2}
pending={a2}
deduce.grid15: naked-singles
- b2 is 2 by naked-single.
pending={b2}
deduce.grid15: hidden-singles
deduce.grid15: naked-pairs
two's heap=a6 {2|3}, g2 {3|4}, e9 {1|6}, h2 {4|6}, i1 {3|6}, i8 {2|7}, f1 {4|6}, a7 {6|9}, c8 {4|8}, e8 {8|9}, i4 {3|8}, b7 {1|8}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid15
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 4
|
|
|
|
|
|
|
| b
| 9
| 2
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
| 9
|
|
| 7
|
|
|
|
| e
|
|
| 2
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid15 → grid16: a6 guess 2 ∈ {2|3}
pending={a6}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowf. f5 is 2 by hidden-single.
pending={f5}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowh. h1 is 2 by hidden-single.
pending={h1}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowg. g4 is 2 by hidden-single.
pending={g4}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowg. g6 is 9 by hidden-single.
pending={g6}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowf. f7 is 9 by hidden-single.
pending={f7}
deduce.grid16: naked-singles
- a7 is 6 by naked-single.
pending={a7}
- e8 is 8 by naked-single.
pending={e8}
- c8 is 4 by naked-single.
pending={c8}
- d7 is 1 by naked-single.
pending={d7}
- b7 is 8 by naked-single.
pending={b7}
- d8 is 2 by naked-single.
pending={d8}
- e9 is 6 by naked-single.
pending={e9}
- d9 is 4 by naked-single.
pending={d9}
- e2 is 3 by naked-single.
pending={e2}
- d1 is 6 by naked-single.
pending={d1}
- e1 is 1 by naked-single.
pending={e1}
- e4 is 9 by naked-single.
pending={e4}
- f1 is 4 by naked-single.
pending={f1}
- f2 is 8 by naked-single.
pending={f2}
- f6 is 6 by naked-single.
pending={f6}
- g2 is 4 by naked-single.
pending={g2}
- h2 is 6 by naked-single.
pending={h2}
- h5 is 7 by naked-single.
pending={h5}
- g5 is 3 by naked-single.
pending={g5}
- a5 is 5 by naked-single.
pending={a5}
- b5 is 1 by naked-single.
pending={b5}
- b6 is 4 by naked-single.
pending={b6}
- b9 is 7 by naked-single.
pending={b9}
- a8 is 9 by naked-single.
pending={a8}
- a9 is 3 by naked-single.
pending={a9}
- a4 is 7 by naked-single.
pending={a4}
- b8 is 5 by naked-single.
pending={b8}
- c9 is 1 by naked-single.
pending={c9}
- d5 is 8 by naked-single.
pending={d5}
- d4 is 3 by naked-single.
pending={d4}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 3 by naked-single.
pending={c6}
- g1 is 7 by naked-single.
pending={g1}
grid16 didn't work: naked-singles ran out of candidates.
…backtrack.grid15 again
backtrack.grid15 → grid17: a6 guess 3 ∈ {2|3}
pending={a6}
deduce.grid17: naked-singles
deduce.grid17: hidden-singles
deduce.grid17.rowc. c9 is 3 by hidden-single.
pending={c9}
deduce.grid17: naked-singles
deduce.grid17: hidden-singles
deduce.grid17.rowc. c6 is 1 by hidden-single.
pending={c6}
deduce.grid17: naked-singles
deduce.grid17: hidden-singles
deduce.grid17.rowi. i5 is 1 by hidden-single.
pending={i5}
deduce.grid17: naked-singles
deduce.grid17: hidden-singles
deduce.grid17: naked-pairs
two's heap=g2 {3|4}, e9 {1|6}, i1 {3|6}, i8 {2|7}, f1 {4|6}, h2 {4|6}, i4 {3|8}, i9 {2|7}, a7 {6|9}, b6 {4|8}, a4 {2|7}, c4 {4|8}, a9 {6|7}, c8 {4|8}, i6 {6|8}, e8 {8|9}, b7 {1|8}.
Naked-pair {2|7} in cells {a4, i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i6}:
Naked-pair {4|8} in cells {b6, c4, c8} contained within {rowc, box2}, updating cells {a4, a5, b5}:
grid17
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 4
|
|
| 3
|
|
|
|
| b
| 9
| 2
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
| 1
| 2
|
| 3
|
| d
|
| 5
| 9
|
|
| 7
|
|
|
|
| e
|
|
| 2
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
| 1
|
| 4
|
|
|
backtrack.grid17 → grid18: a4 guess 2 ∈ {2|7}
pending={a4}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.col4. g4 is 7 by hidden-single.
pending={g4}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowg. g6 is 9 by hidden-single.
pending={g6}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowf. f7 is 9 by hidden-single.
pending={f7}
deduce.grid18: naked-singles
- a7 is 6 by naked-single.
pending={a7}
- a9 is 7 by naked-single.
pending={a9}
- a5 is 5 by naked-single.
pending={a5}
- a8 is 9 by naked-single.
pending={a8}
- b5 is 7 by naked-single.
pending={b5}
- e8 is 8 by naked-single.
pending={e8}
- c8 is 4 by naked-single.
pending={c8}
- b8 is 5 by naked-single.
pending={b8}
- b9 is 1 by naked-single.
pending={b9}
- b7 is 8 by naked-single.
pending={b7}
- b6 is 4 by naked-single.
pending={b6}
- c4 is 8 by naked-single.
pending={c4}
- d4 is 3 by naked-single.
pending={d4}
- d7 is 1 by naked-single.
pending={d7}
- d8 is 2 by naked-single.
pending={d8}
- e4 is 9 by naked-single.
pending={e4}
- e9 is 6 by naked-single.
pending={e9}
- d9 is 4 by naked-single.
pending={d9}
- d1 is 6 by naked-single.
pending={d1}
- d5 is 8 by naked-single.
pending={d5}
- e2 is 3 by naked-single.
pending={e2}
- e1 is 1 by naked-single.
pending={e1}
- f1 is 4 by naked-single.
pending={f1}
- f2 is 8 by naked-single.
pending={f2}
- g2 is 4 by naked-single.
pending={g2}
- h2 is 6 by naked-single.
pending={h2}
- h5 is 2 by naked-single.
pending={h5}
- f5 is 6 by naked-single.
pending={f5}
- f6 is 2 by naked-single.
pending={f6}
- g5 is 3 by naked-single.
pending={g5}
- g1 is 2 by naked-single.
pending={g1}
- h1 is 7 by naked-single.
pending={h1}
grid18 didn't work: naked-singles ran out of candidates.
…backtrack.grid17 again
backtrack.grid17 → grid19: a4 guess 7 ∈ {2|7}
pending={a4}
deduce.grid19: naked-singles
- a9 is 6 by naked-single.
pending={a9}
- a7 is 9 by naked-single.
pending={a7}
- a8 is 5 by naked-single.
pending={a8}
- a5 is 2 by naked-single.
pending={a5}
- b5 is 5 by naked-single.
pending={b5}
- e9 is 1 by naked-single.
pending={e9}
deduce.grid19: hidden-singles
deduce.grid19.rowb. b7 is 1 by hidden-single.
pending={b7}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowd. d1 is 1 by hidden-single.
pending={d1}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
grid19 didn't work: more than one hidden-candidate in cell 50.
…backtrack.grid17 again
grid17 didn't work: exhaustive search revealed no solution.
…backtrack.grid15 again
grid15 didn't work: exhaustive search revealed no solution.
…backtrack.grid14 again
backtrack.grid14 → grid20: a2 guess 2 ∈ {1|2}
pending={a2}
deduce.grid20: naked-singles
- b2 is 1 by naked-single.
pending={b2}
- b7 is 8 by naked-single.
pending={b7}
- c8 is 4 by naked-single.
pending={c8}
- b9 is 7 by naked-single.
pending={b9}
- b8 is 5 by naked-single.
pending={b8}
- a8 is 9 by naked-single.
pending={a8}
- b5 is 2 by naked-single.
pending={b5}
- b6 is 4 by naked-single.
pending={b6}
- e8 is 8 by naked-single.
pending={e8}
- d8 is 2 by naked-single.
pending={d8}
- i8 is 7 by naked-single.
pending={i8}
- i9 is 2 by naked-single.
pending={i9}
deduce.grid20: hidden-singles
deduce.grid20.rowa. a5 is 5 by hidden-single.
pending={a5}
deduce.grid20: naked-singles
deduce.grid20: hidden-singles
deduce.grid20.rowa. a4 is 7 by hidden-single.
pending={a4}
deduce.grid20: naked-singles
deduce.grid20: hidden-singles
deduce.grid20.rowe. e4 is 9 by hidden-single.
pending={e4}
deduce.grid20: naked-singles
deduce.grid20: hidden-singles
deduce.grid20.rowf. f6 is 2 by hidden-single.
deduce.grid20.rowf. f7 is 9 by hidden-single.
pending={f6, f7}
deduce.grid20: naked-singles
- h6 is 6 by naked-single.
pending={h6}
- h2 is 4 by naked-single.
pending={h2}
- g2 is 3 by naked-single.
pending={g2}
- e2 is 6 by naked-single.
pending={e2}
- e9 is 1 by naked-single.
pending={e9}
- c9 is 3 by naked-single.
pending={c9}
- a9 is 6 by naked-single.
pending={a9}
- a7 is 1 by naked-single.
pending={a7}
- a6 is 3 by naked-single.
pending={a6}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- d4 is 3 by naked-single.
pending={d4}
- d7 is 6 by naked-single.
pending={d7}
- d5 is 8 by naked-single.
pending={d5}
- d9 is 4 by naked-single.
pending={d9}
- d1 is 1 by naked-single.
pending={d1}
- e1 is 3 by naked-single.
pending={e1}
- f1 is 4 by naked-single.
pending={f1}
- f2 is 8 by naked-single.
pending={f2}
- f5 is 6 by naked-single.
pending={f5}
- g5 is 7 by naked-single.
pending={g5}
- g1 is 2 by naked-single.
pending={g1}
- g4 is 4 by naked-single.
pending={g4}
- g6 is 9 by naked-single.
pending={g6}
- h1 is 7 by naked-single.
pending={h1}
grid20 didn't work: naked-singles ran out of candidates.
…backtrack.grid14 again
grid14 didn't work: exhaustive search revealed no solution.
…backtrack.grid13 again
backtrack.grid13 → grid21: a3 guess 9 ∈ {4|9}
pending={a3}
deduce.grid21: naked-singles
- d3 is 4 by naked-single.
pending={d3}
deduce.grid21: hidden-singles
grid21 didn't work: rowf is not bijective.
…backtrack.grid13 again
grid13 didn't work: exhaustive search revealed no solution.
…backtrack.grid12 again
backtrack.grid12 → grid22: e3 guess 9 ∈ {2|9}
pending={e3}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.col1. b1 is 9 by hidden-single.
pending={b1}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22.col1. c1 is 5 by hidden-single.
pending={c1}
deduce.grid22: naked-singles
deduce.grid22: hidden-singles
deduce.grid22: naked-pairs
two's heap=a3 {2|4}, d3 {2|4}, i1 {3|6}, i8 {2|7}, e8 {2|8}, c8 {4|8}, i4 {3|8}, b7 {1|8}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid22
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
| 9
|
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
| 9
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid22 → grid23: a3 guess 2 ∈ {2|4}
pending={a3}
deduce.grid23: naked-singles
- d3 is 4 by naked-single.
pending={d3}
deduce.grid23: hidden-singles
grid23 didn't work: rowf is not bijective.
…backtrack.grid22 again
backtrack.grid22 → grid24: a3 guess 4 ∈ {2|4}
pending={a3}
deduce.grid24: naked-singles
- d3 is 2 by naked-single.
pending={d3}
deduce.grid24: hidden-singles
deduce.grid24: naked-pairs
two's heap=a2 {1|2}, b2 {1|2}, i1 {3|6}, i8 {2|7}, i9 {2|7}, b7 {1|8}, f1 {4|6}, c8 {4|8}, i4 {3|8}, e8 {2|8}.
Naked-pair {1|2} in cells {a2, b2} contained within {col2, box1}, updating cells {e2, f2, g2, h2}:
- e2: {1|3|6|8} → {3|6|8}.
- g2: {2|3|4} → {3|4}.
- h2: {2|4|6} → {4|6}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid24
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
| 4
|
|
|
|
|
|
|
| b
| 9
|
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
| 2
|
|
| 7
|
|
|
|
| e
|
|
| 9
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid24 → grid25: a2 guess 1 ∈ {1|2}
pending={a2}
deduce.grid25: naked-singles
- b2 is 2 by naked-single.
pending={b2}
deduce.grid25: hidden-singles
deduce.grid25: naked-pairs
two's heap=a6 {2|3}, i1 {3|6}, g2 {3|4}, h2 {4|6}, i8 {2|7}, i9 {2|7}, f1 {4|6}, a7 {6|9}, e8 {2|8}, c8 {4|8}, i4 {3|8}, b7 {1|8}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i5, i6}:
grid25
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 4
|
|
|
|
|
|
|
| b
| 9
| 2
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
|
| 2
|
|
|
| d
|
| 5
| 2
|
|
| 7
|
|
|
|
| e
|
|
| 9
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
|
|
| 4
|
|
|
backtrack.grid25 → grid26: a6 guess 2 ∈ {2|3}
pending={a6}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowf. f5 is 2 by hidden-single.
pending={f5}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowh. h1 is 2 by hidden-single.
pending={h1}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowg. g4 is 2 by hidden-single.
pending={g4}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowg. g6 is 9 by hidden-single.
pending={g6}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowf. f7 is 9 by hidden-single.
pending={f7}
deduce.grid26: naked-singles
- a7 is 6 by naked-single.
pending={a7}
deduce.grid26: hidden-singles
deduce.grid26.rowa. a8 is 9 by hidden-single.
pending={a8}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowa. a5 is 5 by hidden-single.
pending={a5}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowb. b8 is 5 by hidden-single.
pending={b8}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowd. d4 is 9 by hidden-single.
pending={d4}
deduce.grid26: naked-singles
deduce.grid26: hidden-singles
deduce.grid26.rowh. h5 is 7 by hidden-single.
pending={h5}
deduce.grid26: naked-singles
- g5 is 3 by naked-single.
pending={g5}
- g2 is 4 by naked-single.
pending={g2}
- g1 is 7 by naked-single.
pending={g1}
- h2 is 6 by naked-single.
pending={h2}
- f2 is 8 by naked-single.
pending={f2}
- e2 is 3 by naked-single.
pending={e2}
- e4 is 8 by naked-single.
pending={e4}
- d5 is 6 by naked-single.
pending={d5}
- e8 is 2 by naked-single.
pending={e8}
grid26 didn't work: naked-singles ran out of candidates.
…backtrack.grid25 again
backtrack.grid25 → grid27: a6 guess 3 ∈ {2|3}
pending={a6}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowc. c9 is 3 by hidden-single.
pending={c9}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowc. c6 is 1 by hidden-single.
pending={c6}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27.rowi. i5 is 1 by hidden-single.
pending={i5}
deduce.grid27: naked-singles
deduce.grid27: hidden-singles
deduce.grid27: naked-pairs
two's heap=g2 {3|4}, f1 {4|6}, i1 {3|6}, i9 {2|7}, h2 {4|6}, a9 {6|7}, i8 {2|7}, b7 {1|8}, e8 {2|8}, b6 {4|8}, a4 {2|7}, c4 {4|8}, i4 {3|8}, i6 {6|8}, c8 {4|8}, a7 {6|9}.
Naked-pair {2|7} in cells {a4, i8, i9} contained within {rowi, box9}, updating cells {i1, i4, i6}:
Naked-pair {4|8} in cells {b6, c4, c8} contained within {rowc, box2}, updating cells {a4, a5, b5}:
grid27
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 4
|
|
| 3
|
|
|
|
| b
| 9
| 2
| 3
| 6
|
|
|
|
|
|
| c
| 5
| 7
| 6
|
| 9
| 1
| 2
|
| 3
|
| d
|
| 5
| 2
|
|
| 7
|
|
|
|
| e
|
|
| 9
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
|
| 9
| 5
|
| 1
|
| 4
|
|
|
backtrack.grid27 → grid28: a4 guess 2 ∈ {2|7}
pending={a4}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.col4. g4 is 7 by hidden-single.
pending={g4}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.rowg. g6 is 9 by hidden-single.
pending={g6}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.rowf. f7 is 9 by hidden-single.
pending={f7}
deduce.grid28: naked-singles
- a7 is 6 by naked-single.
pending={a7}
- a9 is 7 by naked-single.
pending={a9}
- a5 is 5 by naked-single.
pending={a5}
- a8 is 9 by naked-single.
pending={a8}
- b5 is 7 by naked-single.
pending={b5}
- i9 is 2 by naked-single.
pending={i9}
- i8 is 7 by naked-single.
pending={i8}
deduce.grid28: hidden-singles
deduce.grid28.rowb. b8 is 5 by hidden-single.
pending={b8}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.rowd. d4 is 9 by hidden-single.
pending={d4}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.rowe. e8 is 2 by hidden-single.
pending={e8}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.rowh. h1 is 7 by hidden-single.
pending={h1}
deduce.grid28: naked-singles
deduce.grid28: hidden-singles
deduce.grid28.col1. g1 is 2 by hidden-single.
pending={g1}
deduce.grid28: naked-singles
- g5 is 3 by naked-single.
pending={g5}
- g2 is 4 by naked-single.
pending={g2}
- h2 is 6 by naked-single.
pending={h2}
- f2 is 8 by naked-single.
pending={f2}
- e2 is 3 by naked-single.
pending={e2}
- e4 is 8 by naked-single.
pending={e4}
- c4 is 4 by naked-single.
pending={c4}
- b6 is 8 by naked-single.
pending={b6}
- b7 is 1 by naked-single.
pending={b7}
- b9 is 4 by naked-single.
pending={b9}
- c8 is 8 by naked-single.
pending={c8}
- d5 is 6 by naked-single.
pending={d5}
- d7 is 8 by naked-single.
pending={d7}
- d8 is 4 by naked-single.
pending={d8}
- d1 is 1 by naked-single.
pending={d1}
grid28 didn't work: naked-singles ran out of candidates.
…backtrack.grid27 again
backtrack.grid27 → grid29: a4 guess 7 ∈ {2|7}
pending={a4}
deduce.grid29: naked-singles
- a9 is 6 by naked-single.
pending={a9}
- a7 is 9 by naked-single.
pending={a7}
- a8 is 5 by naked-single.
pending={a8}
- a5 is 2 by naked-single.
pending={a5}
- b5 is 5 by naked-single.
pending={b5}
deduce.grid29: hidden-singles
grid29 didn't work: more than one hidden-candidate in cell 50.
…backtrack.grid27 again
grid27 didn't work: exhaustive search revealed no solution.
…backtrack.grid25 again
grid25 didn't work: exhaustive search revealed no solution.
…backtrack.grid24 again
backtrack.grid24 → grid30: a2 guess 2 ∈ {1|2}
pending={a2}
deduce.grid30: naked-singles
- b2 is 1 by naked-single.
pending={b2}
- b7 is 8 by naked-single.
pending={b7}
- c8 is 4 by naked-single.
pending={c8}
- b9 is 7 by naked-single.
pending={b9}
- b8 is 5 by naked-single.
pending={b8}
- a8 is 9 by naked-single.
pending={a8}
- b5 is 2 by naked-single.
pending={b5}
- b6 is 4 by naked-single.
pending={b6}
- d8 is 8 by naked-single.
pending={d8}
- e8 is 2 by naked-single.
pending={e8}
- i8 is 7 by naked-single.
pending={i8}
- i9 is 2 by naked-single.
pending={i9}
deduce.grid30: hidden-singles
deduce.grid30.rowa. a5 is 5 by hidden-single.
pending={a5}
deduce.grid30: naked-singles
deduce.grid30: hidden-singles
deduce.grid30.rowa. a4 is 7 by hidden-single.
pending={a4}
deduce.grid30: naked-singles
deduce.grid30: hidden-singles
deduce.grid30.rowf. f6 is 2 by hidden-single.
pending={f6}
deduce.grid30: naked-singles
- h6 is 6 by naked-single.
pending={h6}
- h2 is 4 by naked-single.
pending={h2}
- g2 is 3 by naked-single.
pending={g2}
- g5 is 7 by naked-single.
pending={g5}
- g1 is 2 by naked-single.
pending={g1}
- g6 is 9 by naked-single.
pending={g6}
- g4 is 4 by naked-single.
pending={g4}
- h1 is 7 by naked-single.
pending={h1}
grid30 didn't work: naked-singles ran out of candidates.
…backtrack.grid24 again
grid24 didn't work: exhaustive search revealed no solution.
…backtrack.grid22 again
grid22 didn't work: exhaustive search revealed no solution.
…backtrack.grid12 again
grid12 didn't work: exhaustive search revealed no solution.
…backtrack.grid4 again
grid4 didn't work: exhaustive search revealed no solution.
…backtrack.grid3 again
backtrack.grid3 → grid31: i3 guess 6 ∈ {5|6}
pending={i3}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.rowi. i1 is 5 by hidden-single.
pending={i1}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31.col3. f3 is 7 by hidden-single.
pending={f3}
deduce.grid31: naked-singles
deduce.grid31: hidden-singles
deduce.grid31: naked-pairs
two's heap=h2 {2|4}, i8 {2|7}, c3 {4|5}, e3 {2|9}, i4 {3|8}, i9 {2|7}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i4, i5, i6}:
grid31
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
| 5
| 9
| 6
|
|
|
| 4
|
|
|
backtrack.grid31 → grid32: c3 guess 4 ∈ {4|5}
pending={c3}
deduce.grid32: naked-singles
deduce.grid32: hidden-singles
deduce.grid32.rowc. c8 is 5 by hidden-single.
pending={c8}
deduce.grid32: naked-singles
deduce.grid32: hidden-singles
deduce.grid32.rowb. b5 is 5 by hidden-single.
pending={b5}
deduce.grid32: naked-singles
deduce.grid32: hidden-singles
deduce.grid32.rowa. a3 is 5 by hidden-single.
pending={a3}
deduce.grid32: naked-singles
deduce.grid32: hidden-singles
deduce.grid32.box1. b1 is 9 by hidden-single.
pending={b1}
deduce.grid32: naked-singles
deduce.grid32: hidden-singles
deduce.grid32: naked-pairs
two's heap=b2 {1|2}, i8 {2|7}, h2 {2|4}, b7 {1|8}, i9 {2|7}, e3 {2|9}, c1 {1|6}, i4 {3|8}, c4 {3|8}, d3 {2|9}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i4, i5, i6}:
Naked-pair {3|8} in cells {c4, i4} contained within {col4}, updating cells {a4, d4, e4, g4}:
- a4: {2|3|4|7} → {2|4|7}.
- d4: {2|3|8|9} → {2|9}.
- e4: {2|3|8|9} → {2|9}.
- g4: {2|3|4|7|9} → {2|4|7|9}.
Naked-pair {2|9} in cells {d3, e3} contained within {col3, box4}, updating cells {d1, e1, e2, f1, f2}:
- d1: {1|2|3|4|6} → {1|3|4|6}.
- e1: {1|2|3|6} → {1|3|6}.
- e2: {1|2|3|6|8} → {1|3|6|8}.
- f1: {2|4|6} → {4|6}.
- f2: {2|4|6|8} → {4|6|8}.
grid32
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
| 5
|
|
|
|
|
|
|
| b
| 9
|
| 3
| 6
| 5
|
|
|
|
|
| c
|
| 7
| 4
|
| 9
|
| 2
| 5
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
| 5
| 9
| 6
|
|
|
| 4
|
|
|
backtrack.grid32 → grid33: b2 guess 1 ∈ {1|2}
pending={b2}
deduce.grid33: naked-singles
- b7 is 8 by naked-single.
pending={b7}
- c1 is 6 by naked-single.
pending={c1}
- a2 is 2 by naked-single.
pending={a2}
- f1 is 4 by naked-single.
pending={f1}
- h2 is 4 by naked-single.
pending={h2}
- g2 is 3 by naked-single.
pending={g2}
deduce.grid33: hidden-singles
deduce.grid33.rowb. b6 is 2 by hidden-single.
pending={b6}
deduce.grid33: naked-singles
- h6 is 6 by naked-single.
pending={h6}
deduce.grid33: hidden-singles
deduce.grid33.rowe. e1 is 3 by hidden-single.
pending={e1}
deduce.grid33: naked-singles
- d1 is 1 by naked-single.
pending={d1}
deduce.grid33: hidden-singles
deduce.grid33.rowd. d5 is 3 by hidden-single.
pending={d5}
deduce.grid33: naked-singles
deduce.grid33: hidden-singles
deduce.grid33.rowd. d8 is 8 by hidden-single.
pending={d8}
deduce.grid33: naked-singles
deduce.grid33: hidden-singles
deduce.grid33.rowd. d9 is 4 by hidden-single.
pending={d9}
deduce.grid33: naked-singles
- b9 is 7 by naked-single.
pending={b9}
- b8 is 4 by naked-single.
pending={b8}
- a8 is 9 by naked-single.
pending={a8}
- e8 is 2 by naked-single.
pending={e8}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 2 by naked-single.
pending={d3}
- d4 is 9 by naked-single.
pending={d4}
- d7 is 6 by naked-single.
pending={d7}
- a7 is 1 by naked-single.
pending={a7}
- a5 is 7 by naked-single.
pending={a5}
- a4 is 4 by naked-single.
pending={a4}
- a6 is 3 by naked-single.
pending={a6}
- a9 is 6 by naked-single.
pending={a9}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- c9 is 3 by naked-single.
pending={c9}
grid33 didn't work: naked-singles ran out of candidates.
…backtrack.grid32 again
backtrack.grid32 → grid34: b2 guess 2 ∈ {1|2}
pending={b2}
deduce.grid34: naked-singles
- h2 is 4 by naked-single.
pending={h2}
- g2 is 3 by naked-single.
pending={g2}
deduce.grid34: hidden-singles
deduce.grid34.rowe. e1 is 3 by hidden-single.
pending={e1}
deduce.grid34: naked-singles
deduce.grid34: hidden-singles
deduce.grid34.rowd. d5 is 3 by hidden-single.
pending={d5}
deduce.grid34: naked-singles
deduce.grid34: hidden-singles
deduce.grid34.rowf. f1 is 4 by hidden-single.
pending={f1}
deduce.grid34: naked-singles
deduce.grid34: hidden-singles
deduce.grid34: naked-pairs
two's heap=a2 {1|6}, d1 {1|6}, c1 {1|6}, i8 {2|7}, g1 {2|7}, g5 {2|7}, h6 {2|6}, i5 {1|8}, i9 {2|7}, f2 {6|8}, b7 {1|8}, d3 {2|9}, h1 {2|7}, d4 {2|9}, i4 {3|8}, e3 {2|9}, c4 {3|8}, e4 {2|9}.
Naked-pair {1|6} in cells {a2, c1, d1} contained within {col1, box1}, updating cells {g1, h1}:
Naked-pair {2|7} in cells {g1, g5, h1, i8, i9} contained within {rowg, rowi, col1, box7, box9}, updating cells {c1, d1, g4, g6, i4, i5, i6}:
- g4: {2|4|7|9} → {4|9}.
- g6: {2|4|9} → {4|9}.
Naked-pair {3|8} in cells {c4, i4} contained within {col4}, updating cells {a4, d4, e4, g4}:
Naked-pair {2|9} in cells {d3, d4, e3, e4} contained within {rowd, rowe, col3, col4, box4, box5}, updating cells {a4, c4, d1, d7, d8, d9, e2, e8, e9, f2, f5, f6, g4, i4}:
- a4: {2|4|7} → {4|7}.
- d7: {1|6|8|9} → {1|6|8}.
- d8: {2|4|8|9} → {4|8}.
- d9: {1|2|4|6} → {1|4|6}.
- e8: {2|8|9} → {8}. Solved.
- e9: {1|2|6} → {1|6}.
- f5: {2|6|8} → {6|8}.
- f6: {2|6|8|9} → {6|8}.
- g4: {4|9} → {4}. Solved.
pending={e8, g4}
deduce.grid34: naked-singles
- a4 is 7 by naked-single.
pending={a4}
- d8 is 4 by naked-single.
pending={d8}
- a8 is 9 by naked-single.
pending={a8}
- b8 is 7 by naked-single.
pending={b8}
- g6 is 9 by naked-single.
pending={g6}
- i8 is 2 by naked-single.
pending={i8}
- i9 is 7 by naked-single.
pending={i9}
deduce.grid34: hidden-singles
grid34 didn't work: rowd is not bijective.
…backtrack.grid32 again
grid32 didn't work: exhaustive search revealed no solution.
…backtrack.grid31 again
backtrack.grid31 → grid35: c3 guess 5 ∈ {4|5}
pending={c3}
deduce.grid35: naked-singles
deduce.grid35: hidden-singles
deduce.grid35: naked-pairs
two's heap=h2 {2|4}, i8 {2|7}, i9 {2|7}, e3 {2|9}, i4 {3|8}, c8 {4|8}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i4, i5, i6}:
grid35
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
| 5
| 9
| 6
|
|
|
| 4
|
|
|
backtrack.grid35 → grid36: c8 guess 4 ∈ {4|8}
pending={c8}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.col9. d9 is 4 by hidden-single.
pending={d9}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.col3. a3 is 4 by hidden-single.
pending={a3}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowb. b6 is 4 by hidden-single.
pending={b6}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.col4. g4 is 4 by hidden-single.
pending={g4}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowg. g6 is 9 by hidden-single.
pending={g6}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.col4. a4 is 7 by hidden-single.
pending={a4}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.box1. b1 is 9 by hidden-single.
pending={b1}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowf. f7 is 9 by hidden-single.
pending={f7}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowa. a8 is 9 by hidden-single.
pending={a8}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowa. a5 is 5 by hidden-single.
pending={a5}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowb. b8 is 5 by hidden-single.
pending={b8}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36.rowb. b9 is 7 by hidden-single.
pending={b9}
deduce.grid36: naked-singles
- i9 is 2 by naked-single.
pending={i9}
- i8 is 7 by naked-single.
pending={i8}
deduce.grid36: hidden-singles
deduce.grid36.box3. b7 is 8 by hidden-single.
pending={b7}
deduce.grid36: naked-singles
deduce.grid36: hidden-singles
deduce.grid36: naked-pairs
two's heap=b2 {1|2}, a7 {1|6}, b5 {1|2}, c1 {1|6}, e9 {1|6}, g2 {2|3}, d7 {1|6}, d8 {2|8}, e3 {2|9}, c4 {3|8}, e8 {2|8}, d3 {2|9}, h2 {2|4}, h6 {2|6}, i4 {3|8}.
Naked-pair {1|6} in cells {a7, c1, d7, e9} contained within {col7, box6}, updating cells {d8, e8}:
Naked-pair {2|8} in cells {d8, e8} contained within {col8, box6}, updating cells {d7, e9}:
Naked-pair {3|8} in cells {c4, i4} contained within {col4}, updating cells {d4, e4}:
- d4: {2|3|8|9} → {2|9}.
- e4: {2|3|8|9} → {2|9}.
Naked-pair {2|9} in cells {d3, e3} contained within {col3, box4}, updating cells {d1, e1, e2, f1, f2}:
- d1: {1|2|3|6} → {1|3|6}.
- e1: {1|2|3|6} → {1|3|6}.
- e2: {1|2|3|6|8} → {1|3|6|8}.
- f1: {2|4|6} → {4|6}.
- f2: {2|4|6|8} → {4|6|8}.
grid36
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
| 4
| 7
| 5
|
|
| 9
|
|
| b
| 9
|
| 3
| 6
|
| 4
| 8
| 5
| 7
|
| c
|
| 7
| 5
|
| 9
|
| 2
| 4
|
|
| d
|
| 5
|
|
|
| 7
|
|
| 4
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
| 9
| 3
| 5
|
| g
|
|
| 1
| 4
|
| 9
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
| 5
| 9
| 6
|
|
|
| 4
| 7
| 2
|
backtrack.grid36 → grid37: a7 guess 1 ∈ {1|6}
pending={a7}
deduce.grid37: naked-singles
- d7 is 6 by naked-single.
pending={d7}
- e9 is 1 by naked-single.
pending={e9}
deduce.grid37: hidden-singles
deduce.grid37.rowd. d1 is 1 by hidden-single.
pending={d1}
deduce.grid37: naked-singles
- c1 is 6 by naked-single.
pending={c1}
- a2 is 2 by naked-single.
pending={a2}
- a6 is 3 by naked-single.
pending={a6}
- a9 is 6 by naked-single.
pending={a9}
- b2 is 1 by naked-single.
pending={b2}
- b5 is 2 by naked-single.
pending={b5}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- c9 is 3 by naked-single.
pending={c9}
- e1 is 3 by naked-single.
pending={e1}
- f1 is 4 by naked-single.
pending={f1}
- g2 is 3 by naked-single.
pending={g2}
- g5 is 7 by naked-single.
pending={g5}
- g1 is 2 by naked-single.
pending={g1}
- h1 is 7 by naked-single.
pending={h1}
- h2 is 4 by naked-single.
pending={h2}
- h5 is 6 by naked-single.
pending={h5}
- f5 is 8 by naked-single.
pending={f5}
- d5 is 3 by naked-single.
pending={d5}
- f2 is 6 by naked-single.
pending={f2}
- e2 is 8 by naked-single.
pending={e2}
- e8 is 2 by naked-single.
pending={e8}
- d8 is 8 by naked-single.
pending={d8}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 2 by naked-single.
pending={d3}
- d4 is 9 by naked-single.
pending={d4}
grid37 didn't work: naked-singles ran out of candidates.
…backtrack.grid36 again
backtrack.grid36 → grid38: a7 guess 6 ∈ {1|6}
pending={a7}
deduce.grid38: naked-singles
- d7 is 1 by naked-single.
pending={d7}
- e9 is 6 by naked-single.
pending={e9}
deduce.grid38: hidden-singles
deduce.grid38.rowc. c1 is 6 by hidden-single.
pending={c1}
deduce.grid38: naked-singles
- d1 is 3 by naked-single.
pending={d1}
- e1 is 1 by naked-single.
pending={e1}
- e2 is 8 by naked-single.
pending={e2}
- e8 is 2 by naked-single.
pending={e8}
- d8 is 8 by naked-single.
pending={d8}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 2 by naked-single.
pending={d3}
- d4 is 9 by naked-single.
pending={d4}
- d5 is 6 by naked-single.
pending={d5}
grid38 didn't work: naked-singles ran out of candidates.
…backtrack.grid36 again
grid36 didn't work: exhaustive search revealed no solution.
…backtrack.grid35 again
backtrack.grid35 → grid39: c8 guess 8 ∈ {4|8}
pending={c8}
deduce.grid39: naked-singles
deduce.grid39: hidden-singles
deduce.grid39: naked-pairs
two's heap=h2 {2|4}, c4 {3|4}, i8 {2|7}, i9 {2|7}, b7 {1|9}, e3 {2|9}, i4 {3|8}, e8 {2|9}.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i4, i5, i6}:
Naked-pair {2|9} in cells {e3, e8} contained within {rowe}, updating cells {e1, e2, e4, e9}:
- e1: {1|2|3|6|9} → {1|3|6}.
- e2: {1|2|3|6|8} → {1|3|6|8}.
- e4: {2|3|8|9} → {3|8}.
- e9: {1|2|6} → {1|6}.
grid39
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 5
|
| 9
|
| 2
| 8
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
|
|
| 3
| 5
|
| g
|
|
| 1
|
|
|
| 5
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 3
| 1
| 9
|
| i
| 5
| 9
| 6
|
|
|
| 4
|
|
|
backtrack.grid39 → grid40: b7 guess 1 ∈ {1|9}
pending={b7}
deduce.grid40: naked-singles
deduce.grid40: hidden-singles
deduce.grid40: naked-pairs
two's heap=b2 {2|4}, h2 {2|4}, i9 {2|7}, c4 {3|4}, i8 {2|7}, b9 {4|7}, e8 {2|9}, a7 {6|9}, e9 {1|6}, e3 {2|9}, i4 {3|8}, e4 {3|8}.
Naked-pair {2|4} in cells {b2, h2} contained within {col2}, updating cells {a2, e2, f2, g2}:
- a2: {1|2|4|6} → {1|6}.
- f2: {2|4|6|8} → {6|8}.
- g2: {2|3|4} → {3}. Solved.
Naked-pair {2|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i4, i5, i6}:
Naked-pair {3|8} in cells {e4, i4} contained within {col4}, updating cells {a4, c4, d4, g4}:
- a4: {2|3|4|7} → {2|4|7}.
- c4: {3|4} → {4}. Solved.
- d4: {2|3|8|9} → {2|9}.
- g4: {2|3|4|7|9} → {2|4|7|9}.
Naked-pair {2|9} in cells {e3, e8} contained within {rowe}, updating cells {e1, e2, e4, e9}:
pending={c4, g2}
deduce.grid40: naked-singles
deduce.grid40: hidden-singles
deduce.grid40.rowf. f1 is 4 by hidden-single.
pending={f1}
deduce.grid40: naked-singles
deduce.grid40: hidden-singles
deduce.grid40.rowg. g6 is 4 by hidden-single.
pending={g6}
deduce.grid40: naked-singles
deduce.grid40: hidden-singles
deduce.grid40.rowg. g4 is 9 by hidden-single.
pending={g4}
deduce.grid40: naked-singles
- d4 is 2 by naked-single.
pending={d4}
- a4 is 7 by naked-single.
pending={a4}
- d3 is 9 by naked-single.
pending={d3}
- d8 is 4 by naked-single.
pending={d8}
- e3 is 2 by naked-single.
pending={e3}
- a3 is 4 by naked-single.
pending={a3}
- b2 is 2 by naked-single.
pending={b2}
- b1 is 9 by naked-single.
pending={b1}
- b6 is 8 by naked-single.
pending={b6}
- b5 is 5 by naked-single.
pending={b5}
- b8 is 7 by naked-single.
pending={b8}
- b9 is 4 by naked-single.
pending={b9}
- e8 is 9 by naked-single.
pending={e8}
- a8 is 5 by naked-single.
pending={a8}
- h2 is 4 by naked-single.
pending={h2}
- i8 is 2 by naked-single.
pending={i8}
- i9 is 7 by naked-single.
pending={i9}
deduce.grid40: hidden-singles
deduce.grid40.rowa. a7 is 9 by hidden-single.
pending={a7}
deduce.grid40: naked-singles
deduce.grid40: hidden-singles
grid40 didn't work: rowf is not bijective.
…backtrack.grid39 again
backtrack.grid39 → grid41: b7 guess 9 ∈ {1|9}
pending={b7}
deduce.grid41: naked-singles
deduce.grid41: hidden-singles
deduce.grid41.rowa. a3 is 9 by hidden-single.
pending={a3}
deduce.grid41: naked-singles
- e3 is 2 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- e8 is 9 by naked-single.
pending={e8}
- d8 is 2 by naked-single.
pending={d8}
- i8 is 7 by naked-single.
pending={i8}
- i9 is 2 by naked-single.
pending={i9}
deduce.grid41: hidden-singles
grid41 didn't work: rowf is not bijective.
…backtrack.grid39 again
grid39 didn't work: exhaustive search revealed no solution.
…backtrack.grid35 again
grid35 didn't work: exhaustive search revealed no solution.
…backtrack.grid31 again
grid31 didn't work: exhaustive search revealed no solution.
…backtrack.grid3 again
grid3 didn't work: exhaustive search revealed no solution.
…backtrack.grid2 again
backtrack.grid2 → grid42: g7 guess 9 ∈ {5|9}
pending={g7}
deduce.grid42: naked-singles
deduce.grid42: hidden-singles
deduce.grid42.rowg. g1 is 5 by hidden-single.
pending={g1}
deduce.grid42: naked-singles
deduce.grid42: hidden-singles
deduce.grid42.rowh. h6 is 9 by hidden-single.
pending={h6}
deduce.grid42: naked-singles
deduce.grid42: hidden-singles
deduce.grid42: naked-pairs
two's heap=h9 {2|7}.
grid42
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
|
| 1
|
|
|
| 9
| 6
| 8
|
| h
|
|
| 8
| 5
|
| 9
| 3
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid42 → grid43: h9 guess 2 ∈ {2|7}
pending={h9}
deduce.grid43: naked-singles
deduce.grid43: hidden-singles
deduce.grid43: naked-pairs
two's heap=h2 {4|6}, i9 {5|7}, i8 {5|7}, h5 {6|7}.
Naked-pair {5|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
- i1: {2|3|6|7} → {2|3|6}.
- i3: {2|6|7} → {2|6}.
- i4: {2|3|7|8} → {2|3|8}.
- i5: {1|2|3|6|7|8} → {1|2|3|6|8}.
grid43
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
|
| 1
|
|
|
| 9
| 6
| 8
|
| h
|
|
| 8
| 5
|
| 9
| 3
| 1
| 2
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid43 → grid44: h2 guess 4 ∈ {4|6}
pending={h2}
deduce.grid44: naked-singles
deduce.grid44: hidden-singles
deduce.grid44.col3. f3 is 7 by hidden-single.
pending={f3}
deduce.grid44: naked-singles
deduce.grid44: hidden-singles
deduce.grid44.col1. h1 is 7 by hidden-single.
pending={h1}
deduce.grid44: naked-singles
- h5 is 6 by naked-single.
pending={h5}
deduce.grid44: hidden-singles
deduce.grid44.col6. f6 is 6 by hidden-single.
pending={f6}
deduce.grid44: naked-singles
deduce.grid44: hidden-singles
deduce.grid44: naked-pairs
two's heap=b2 {1|2}, g2 {2|3}, i3 {2|6}, i9 {5|7}, f2 {2|8}, f5 {2|8}, i8 {5|7}, f7 {5|8}.
Naked-pair {5|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {2|8} in cells {f2, f5} contained within {rowf}, updating cells {f1, f7, f9}:
- f1: {2|4|9} → {4|9}.
- f7: {5|8} → {5}. Solved.
pending={f7}
deduce.grid44: naked-singles
deduce.grid44: hidden-singles
deduce.grid44: naked-pairs
two's heap=b2 {1|2}, g2 {2|3}, b7 {1|8}, a7 {1|6}, i8 {5|7}, f5 {2|8}, f9 {4|9}, f1 {4|9}, i3 {2|6}, f2 {2|8}, i9 {5|7}.
Naked-pair {5|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {2|8} in cells {f2, f5} contained within {rowf}, updating cells {f1, f9}:
Naked-pair {4|9} in cells {f1, f9} contained within {rowf}, updating cells {f2, f5}:
grid44
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
| 6
| 5
| 3
|
|
| g
| 5
|
| 1
|
|
|
| 9
| 6
| 8
|
| h
| 7
| 4
| 8
| 5
| 6
| 9
| 3
| 1
| 2
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid44 → grid45: a7 guess 1 ∈ {1|6}
pending={a7}
deduce.grid45: naked-singles
- b7 is 8 by naked-single.
pending={b7}
- d7 is 6 by naked-single.
pending={d7}
deduce.grid45: hidden-singles
deduce.grid45: naked-pairs
two's heap=b2 {1|2}, g2 {2|3}, c8 {4|5}, a2 {2|6}, i3 {2|6}, i9 {5|7}, f5 {2|8}, f9 {4|9}, e9 {1|9}, f1 {4|9}, i8 {5|7}, f2 {2|8}.
Naked-pair {5|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {2|8} in cells {f2, f5} contained within {rowf}, updating cells {f1, f9}:
Naked-pair {4|9} in cells {f1, f9} contained within {rowf}, updating cells {f2, f5}:
grid45
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
| 1
|
|
|
| b
|
|
| 3
| 6
|
|
| 8
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
| 6
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
| 7
| 1
|
| 6
| 5
| 3
|
|
| g
| 5
|
| 1
|
|
|
| 9
| 6
| 8
|
| h
| 7
| 4
| 8
| 5
| 6
| 9
| 3
| 1
| 2
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid45 → grid46: a2 guess 2 ∈ {2|6}
pending={a2}
deduce.grid46: naked-singles
- b2 is 1 by naked-single.
pending={b2}
- f2 is 8 by naked-single.
pending={f2}
- f5 is 2 by naked-single.
pending={f5}
- g2 is 3 by naked-single.
pending={g2}
- e2 is 6 by naked-single.
pending={e2}
- g5 is 7 by naked-single.
pending={g5}
- b5 is 5 by naked-single.
pending={b5}
- a5 is 3 by naked-single.
pending={a5}
- a6 is 4 by naked-single.
pending={a6}
- a4 is 7 by naked-single.
pending={a4}
- b6 is 2 by naked-single.
pending={b6}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- d5 is 8 by naked-single.
pending={d5}
grid46 didn't work: naked-singles ran out of candidates.
…backtrack.grid45 again
backtrack.grid45 → grid47: a2 guess 6 ∈ {2|6}
pending={a2}
deduce.grid47: naked-singles
deduce.grid47: hidden-singles
deduce.grid47.rowc. c9 is 6 by hidden-single.
pending={c9}
deduce.grid47: naked-singles
deduce.grid47: hidden-singles
deduce.grid47.col9. a9 is 3 by hidden-single.
pending={a9}
deduce.grid47: naked-singles
deduce.grid47: hidden-singles
deduce.grid47: naked-pairs
two's heap=b2 {1|2}, g2 {2|3}, c1 {1|4}, c3 {4|5}, a6 {2|4}, i3 {2|6}, i9 {5|7}, f2 {2|8}, f5 {2|8}, f9 {4|9}, c8 {4|5}, e9 {1|9}, i8 {5|7}, f1 {4|9}.
Naked-pair {4|5} in cells {c3, c8} contained within {rowc}, updating cells {c1, c4, c6}:
- c1: {1|4} → {1}. Solved.
- c4: {3|4|8} → {3|8}.
- c6: {1|3|4|8} → {1|3|8}.
Naked-pair {5|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {2|8} in cells {f2, f5} contained within {rowf}, updating cells {f1, f9}:
Naked-pair {4|9} in cells {f1, f9} contained within {rowf}, updating cells {f2, f5}:
pending={c1}
deduce.grid47: naked-singles
- b2 is 2 by naked-single.
pending={b2}
- f2 is 8 by naked-single.
pending={f2}
- f5 is 2 by naked-single.
pending={f5}
- g2 is 3 by naked-single.
pending={g2}
- e2 is 1 by naked-single.
pending={e2}
- e9 is 9 by naked-single.
pending={e9}
- f9 is 4 by naked-single.
pending={f9}
- d9 is 1 by naked-single.
pending={d9}
- f1 is 9 by naked-single.
pending={f1}
- b1 is 4 by naked-single.
pending={b1}
- b6 is 1 by naked-single.
pending={b6}
- c3 is 5 by naked-single.
pending={c3}
- a3 is 9 by naked-single.
pending={a3}
- c8 is 4 by naked-single.
pending={c8}
- g5 is 7 by naked-single.
pending={g5}
- a5 is 5 by naked-single.
pending={a5}
- a8 is 7 by naked-single.
pending={a8}
grid47 didn't work: naked-singles ran out of candidates.
…backtrack.grid45 again
grid45 didn't work: exhaustive search revealed no solution.
…backtrack.grid44 again
backtrack.grid44 → grid48: a7 guess 6 ∈ {1|6}
pending={a7}
deduce.grid48: naked-singles
deduce.grid48: hidden-singles
deduce.grid48.col2. e2 is 6 by hidden-single.
pending={e2}
deduce.grid48: naked-singles
deduce.grid48: hidden-singles
deduce.grid48.rowd. d9 is 6 by hidden-single.
pending={d9}
deduce.grid48: naked-singles
deduce.grid48: hidden-singles
deduce.grid48.col2. f2 is 8 by hidden-single.
deduce.grid48.col2. g2 is 3 by hidden-single.
pending={f2, g2}
deduce.grid48: naked-singles
- f5 is 2 by naked-single.
pending={f5}
- g5 is 7 by naked-single.
pending={g5}
deduce.grid48: hidden-singles
deduce.grid48.col4. a4 is 7 by hidden-single.
pending={a4}
deduce.grid48: naked-singles
deduce.grid48: hidden-singles
deduce.grid48: naked-pairs
two's heap=a2 {1|2}, b2 {1|2}, i1 {2|6}, d5 {3|8}, g4 {2|4}, i3 {2|6}, i8 {5|7}, f1 {4|9}, f9 {4|9}, d7 {1|8}, g6 {2|4}, e3 {2|9}, b7 {1|8}, e9 {1|9}, i9 {5|7}.
Naked-pair {1|2} in cells {a2, b2} contained within {col2, box1}, updating cells {a3, b1, c1, c3}:
- a3: {2|4|5|9} → {4|5|9}.
- b1: {1|2|4|9} → {4|9}.
- c1: {1|4|6} → {4|6}.
Naked-pair {2|4} in cells {g4, g6} contained within {rowg, box8}, updating cells {i4, i5, i6}:
- i4: {2|3|8} → {3|8}.
- i6: {1|2|3|8} → {1|3|8}.
Naked-pair {2|6} in cells {i1, i3} contained within {rowi, box7}, updating cells {i4, i5, i6, i8, i9}:
Naked-pair {5|7} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
grid48
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
| 7
|
|
| 6
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
| 6
|
| e
|
| 6
|
|
| 4
| 5
| 7
|
|
|
| f
|
| 8
| 7
| 1
| 2
| 6
| 5
| 3
|
|
| g
| 5
| 3
| 1
|
| 7
|
| 9
| 6
| 8
|
| h
| 7
| 4
| 8
| 5
| 6
| 9
| 3
| 1
| 2
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid48 → grid49: a2 guess 1 ∈ {1|2}
pending={a2}
deduce.grid49: naked-singles
- b2 is 2 by naked-single.
pending={b2}
deduce.grid49: hidden-singles
deduce.grid49.rowa. a6 is 2 by hidden-single.
pending={a6}
deduce.grid49: naked-singles
- g6 is 4 by naked-single.
pending={g6}
- g4 is 2 by naked-single.
pending={g4}
deduce.grid49: hidden-singles
deduce.grid49.col4. c4 is 4 by hidden-single.
pending={c4}
deduce.grid49: naked-singles
- c1 is 6 by naked-single.
pending={c1}
- c3 is 5 by naked-single.
pending={c3}
- c8 is 8 by naked-single.
pending={c8}
- b7 is 1 by naked-single.
pending={b7}
- b6 is 8 by naked-single.
pending={b6}
- b5 is 5 by naked-single.
pending={b5}
- a5 is 3 by naked-single.
pending={a5}
- c6 is 1 by naked-single.
pending={c6}
- c9 is 3 by naked-single.
pending={c9}
- d5 is 8 by naked-single.
pending={d5}
grid49 didn't work: naked-singles ran out of candidates.
…backtrack.grid48 again
backtrack.grid48 → grid50: a2 guess 2 ∈ {1|2}
pending={a2}
deduce.grid50: naked-singles
- b2 is 1 by naked-single.
pending={b2}
- b7 is 8 by naked-single.
pending={b7}
- b5 is 5 by naked-single.
pending={b5}
- d7 is 1 by naked-single.
pending={d7}
- e9 is 9 by naked-single.
pending={e9}
- e3 is 2 by naked-single.
pending={e3}
- e8 is 8 by naked-single.
pending={e8}
- e4 is 3 by naked-single.
pending={e4}
- d5 is 8 by naked-single.
pending={d5}
- d4 is 9 by naked-single.
pending={d4}
- d3 is 4 by naked-single.
pending={d3}
- d1 is 3 by naked-single.
pending={d1}
- d8 is 2 by naked-single.
pending={d8}
- e1 is 1 by naked-single.
pending={e1}
- f1 is 9 by naked-single.
pending={f1}
- b1 is 4 by naked-single.
pending={b1}
- b6 is 2 by naked-single.
pending={b6}
- b9 is 7 by naked-single.
pending={b9}
- b8 is 9 by naked-single.
pending={b8}
- c1 is 6 by naked-single.
pending={c1}
- c3 is 5 by naked-single.
pending={c3}
- a3 is 9 by naked-single.
pending={a3}
- c8 is 4 by naked-single.
pending={c8}
- a8 is 5 by naked-single.
pending={a8}
- c4 is 8 by naked-single.
pending={c4}
- f9 is 4 by naked-single.
pending={f9}
- g6 is 4 by naked-single.
pending={g6}
- g4 is 2 by naked-single.
pending={g4}
- i1 is 2 by naked-single.
pending={i1}
- i3 is 6 by naked-single.
pending={i3}
grid50 didn't work: naked-singles ran out of candidates.
…backtrack.grid48 again
grid48 didn't work: exhaustive search revealed no solution.
…backtrack.grid44 again
grid44 didn't work: exhaustive search revealed no solution.
…backtrack.grid43 again
backtrack.grid43 → grid51: h2 guess 6 ∈ {4|6}
pending={h2}
deduce.grid51: naked-singles
- h5 is 7 by naked-single.
pending={h5}
- h1 is 4 by naked-single.
pending={h1}
- i3 is 2 by naked-single.
pending={i3}
- g2 is 3 by naked-single.
pending={g2}
- g5 is 2 by naked-single.
pending={g5}
- g4 is 4 by naked-single.
pending={g4}
grid51 didn't work: naked-singles ran out of candidates.
…backtrack.grid43 again
grid43 didn't work: exhaustive search revealed no solution.
…backtrack.grid42 again
backtrack.grid42 → grid52: h9 guess 7 ∈ {2|7}
pending={h9}
deduce.grid52: naked-singles
deduce.grid52: hidden-singles
deduce.grid52: naked-pairs
two's heap=i8 {2|5}, h5 {2|6}, i9 {2|5}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
- i1: {2|3|6|7} → {3|6|7}.
- i3: {2|6|7} → {6|7}.
- i4: {2|3|7|8} → {3|7|8}.
- i5: {1|2|3|6|7|8} → {1|3|6|7|8}.
- i6: {1|2|3|6|8} → {1|3|6|8}.
grid52
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
|
| 1
|
|
|
| 9
| 6
| 8
|
| h
|
|
| 8
| 5
|
| 9
| 3
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid52 → grid53: h5 guess 2 ∈ {2|6}
pending={h5}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.rowg. g2 is 2 by hidden-single.
pending={g2}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.col2. e2 is 3 by hidden-single.
pending={e2}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.col1. i1 is 3 by hidden-single.
pending={i1}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.col1. f1 is 7 by hidden-single.
pending={f1}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.col2. f2 is 8 by hidden-single.
pending={f2}
deduce.grid53: naked-singles
- f5 is 6 by naked-single.
pending={f5}
- f6 is 2 by naked-single.
pending={f6}
- f7 is 5 by naked-single.
pending={f7}
deduce.grid53: hidden-singles
deduce.grid53.rowb. b1 is 2 by hidden-single.
pending={b1}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.rowa. a4 is 2 by hidden-single.
pending={a4}
deduce.grid53: naked-singles
deduce.grid53: hidden-singles
deduce.grid53.col3. i3 is 7 by hidden-single.
pending={i3}
deduce.grid53: naked-singles
- i4 is 8 by naked-single.
pending={i4}
- e4 is 9 by naked-single.
pending={e4}
- d4 is 3 by naked-single.
pending={d4}
- c4 is 4 by naked-single.
pending={c4}
- d5 is 8 by naked-single.
pending={d5}
- g4 is 7 by naked-single.
pending={g4}
- g5 is 3 by naked-single.
pending={g5}
- g6 is 4 by naked-single.
pending={g6}
- i5 is 1 by naked-single.
pending={i5}
- i6 is 6 by naked-single.
pending={i6}
deduce.grid53: hidden-singles
deduce.grid53.rowe. e8 is 8 by hidden-single.
pending={e8}
deduce.grid53: naked-singles
- c8 is 5 by naked-single.
pending={c8}
- c3 is 6 by naked-single.
pending={c3}
- c1 is 1 by naked-single.
pending={c1}
- a2 is 4 by naked-single.
pending={a2}
grid53 didn't work: naked-singles ran out of candidates.
…backtrack.grid52 again
backtrack.grid52 → grid54: h5 guess 6 ∈ {2|6}
pending={h5}
deduce.grid54: naked-singles
deduce.grid54: hidden-singles
deduce.grid54.col6. f6 is 6 by hidden-single.
pending={f6}
deduce.grid54: naked-singles
deduce.grid54: hidden-singles
deduce.grid54: naked-pairs
two's heap=h1 {2|4}, h2 {2|4}, i8 {2|5}, f7 {5|8}, i3 {6|7}, f5 {2|8}, i9 {2|5}.
Naked-pair {2|4} in cells {h1, h2} contained within {rowh, box7}, updating cells {g2, i1, i3}:
- g2: {2|3|4} → {3}. Solved.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
pending={g2}
deduce.grid54: naked-singles
deduce.grid54: hidden-singles
deduce.grid54: naked-pairs
two's heap=g6 {2|4}, h1 {2|4}, h2 {2|4}, i8 {2|5}, i9 {2|5}, f5 {2|8}, i1 {6|7}, f7 {5|8}, i3 {6|7}, g5 {2|7}.
Naked-pair {2|4} in cells {g6, h1, h2} contained within {rowh, box7}, updating cells {i1, i3}:
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {6|7} in cells {i1, i3} contained within {rowi, box7}, updating cells {h1, h2, i4, i5, i6, i8, i9}:
- i4: {3|7|8} → {3|8}.
- i5: {1|3|7|8} → {1|3|8}.
grid54
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
| 6
|
| 3
|
|
| g
| 5
| 3
| 1
|
|
|
| 9
| 6
| 8
|
| h
|
|
| 8
| 5
| 6
| 9
| 3
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid54 → grid55: f5 guess 2 ∈ {2|8}
pending={f5}
deduce.grid55: naked-singles
- g5 is 7 by naked-single.
pending={g5}
deduce.grid55: hidden-singles
deduce.grid55.rowb. b8 is 7 by hidden-single.
pending={b8}
deduce.grid55: naked-singles
deduce.grid55: hidden-singles
deduce.grid55.rowa. a4 is 7 by hidden-single.
pending={a4}
deduce.grid55: naked-singles
deduce.grid55: hidden-singles
deduce.grid55.col4. g4 is 2 by hidden-single.
pending={g4}
deduce.grid55: naked-singles
- g6 is 4 by naked-single.
pending={g6}
deduce.grid55: hidden-singles
deduce.grid55.col4. c4 is 4 by hidden-single.
pending={c4}
deduce.grid55: naked-singles
deduce.grid55: hidden-singles
deduce.grid55: naked-pairs
two's heap=h1 {2|4}, h2 {2|4}, i8 {2|5}, c3 {5|6}, i3 {6|7}, i9 {2|5}, c8 {5|8}, d5 {3|8}, i1 {6|7}, f2 {4|8}, i4 {3|8}, f7 {5|8}, c1 {1|6}.
Naked-pair {2|4} in cells {h1, h2} contained within {rowh, box7}, updating cells {i1, i3}:
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {6|7} in cells {i1, i3} contained within {rowi, box7}, updating cells {h1, h2, i4, i5, i6, i8, i9}:
grid55
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
| 7
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
| 7
|
|
| c
|
| 7
|
| 4
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
| 2
| 6
|
| 3
|
|
| g
| 5
| 3
| 1
| 2
| 7
| 4
| 9
| 6
| 8
|
| h
|
|
| 8
| 5
| 6
| 9
| 3
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid55 → grid56: c1 guess 1 ∈ {1|6}
pending={c1}
deduce.grid56: naked-singles
deduce.grid56: hidden-singles
deduce.grid56.col2. e2 is 1 by hidden-single.
pending={e2}
deduce.grid56: naked-singles
deduce.grid56: hidden-singles
deduce.grid56.col2. a2 is 6 by hidden-single.
deduce.grid56.col2. f2 is 8 by hidden-single.
pending={a2, f2}
deduce.grid56: naked-singles
- c3 is 5 by naked-single.
pending={c3}
- c8 is 8 by naked-single.
pending={c8}
- c6 is 3 by naked-single.
pending={c6}
- c9 is 6 by naked-single.
pending={c9}
- f7 is 5 by naked-single.
pending={f7}
- a7 is 1 by naked-single.
pending={a7}
- a5 is 5 by naked-single.
pending={a5}
- a6 is 2 by naked-single.
pending={a6}
grid56 didn't work: naked-singles ran out of candidates.
…backtrack.grid55 again
backtrack.grid55 → grid57: c1 guess 6 ∈ {1|6}
pending={c1}
deduce.grid57: naked-singles
- c3 is 5 by naked-single.
pending={c3}
- c8 is 8 by naked-single.
pending={c8}
- i1 is 7 by naked-single.
pending={i1}
- i3 is 6 by naked-single.
pending={i3}
deduce.grid57: hidden-singles
deduce.grid57.rowf. f3 is 7 by hidden-single.
pending={f3}
deduce.grid57: naked-singles
deduce.grid57: hidden-singles
deduce.grid57.col2. e2 is 6 by hidden-single.
pending={e2}
deduce.grid57: naked-singles
deduce.grid57: hidden-singles
deduce.grid57.rowe. e4 is 8 by hidden-single.
pending={e4}
deduce.grid57: naked-singles
- d5 is 3 by naked-single.
pending={d5}
- d4 is 9 by naked-single.
pending={d4}
- i4 is 3 by naked-single.
pending={i4}
deduce.grid57: hidden-singles
deduce.grid57.rowd. d7 is 8 by hidden-single.
pending={d7}
deduce.grid57: naked-singles
- f7 is 5 by naked-single.
pending={f7}
- b7 is 1 by naked-single.
pending={b7}
- a7 is 6 by naked-single.
pending={a7}
- c9 is 3 by naked-single.
pending={c9}
- c6 is 1 by naked-single.
pending={c6}
- a5 is 5 by naked-single.
pending={a5}
- b5 is 8 by naked-single.
pending={b5}
- b6 is 2 by naked-single.
pending={b6}
- a6 is 3 by naked-single.
pending={a6}
- b2 is 4 by naked-single.
pending={b2}
- b1 is 9 by naked-single.
pending={b1}
- a3 is 2 by naked-single.
pending={a3}
- a2 is 1 by naked-single.
pending={a2}
- b9 is 5 by naked-single.
pending={b9}
- d3 is 4 by naked-single.
pending={d3}
- d8 is 2 by naked-single.
pending={d8}
- d1 is 1 by naked-single.
pending={d1}
- d9 is 6 by naked-single.
pending={d9}
- e3 is 9 by naked-single.
pending={e3}
grid57 didn't work: naked-singles ran out of candidates.
…backtrack.grid55 again
grid55 didn't work: exhaustive search revealed no solution.
…backtrack.grid54 again
backtrack.grid54 → grid58: f5 guess 8 ∈ {2|8}
pending={f5}
deduce.grid58: naked-singles
- f7 is 5 by naked-single.
pending={f7}
deduce.grid58: hidden-singles
deduce.grid58.col2. e2 is 8 by hidden-single.
pending={e2}
deduce.grid58: naked-singles
deduce.grid58: hidden-singles
deduce.grid58.col2. a2 is 6 by hidden-single.
pending={a2}
deduce.grid58: naked-singles
- a7 is 1 by naked-single.
pending={a7}
- b7 is 8 by naked-single.
pending={b7}
- d7 is 6 by naked-single.
pending={d7}
deduce.grid58: hidden-singles
deduce.grid58.rowc. c9 is 6 by hidden-single.
pending={c9}
deduce.grid58: naked-singles
deduce.grid58: hidden-singles
deduce.grid58.rowd. d8 is 8 by hidden-single.
pending={d8}
deduce.grid58: naked-singles
deduce.grid58: hidden-singles
deduce.grid58.col2. b2 is 1 by hidden-single.
pending={b2}
deduce.grid58: naked-singles
- c1 is 4 by naked-single.
pending={c1}
- c3 is 5 by naked-single.
pending={c3}
grid58 didn't work: naked-singles ran out of candidates.
…backtrack.grid54 again
grid54 didn't work: exhaustive search revealed no solution.
…backtrack.grid52 again
grid52 didn't work: exhaustive search revealed no solution.
…backtrack.grid42 again
grid42 didn't work: exhaustive search revealed no solution.
…backtrack.grid2 again
grid2 didn't work: exhaustive search revealed no solution.
…backtrack.grid1 again
backtrack.grid1 → grid59: h7 guess 9 ∈ {3|9}
pending={h7}
deduce.grid59: naked-singles
deduce.grid59: hidden-singles
deduce.grid59: naked-pairs
two's heap=g7 {3|5}.
grid59
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
|
|
| 1
|
|
|
|
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 9
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid59 → grid60: g7 guess 3 ∈ {3|5}
pending={g7}
deduce.grid60: naked-singles
deduce.grid60: hidden-singles
deduce.grid60.rowg. g1 is 5 by hidden-single.
pending={g1}
deduce.grid60: naked-singles
deduce.grid60: hidden-singles
deduce.grid60: naked-pairs
two's heap=g2 {2|4}, g5 {2|7}, h9 {2|7}.
grid60
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
|
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
|
| 1
|
|
|
| 3
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 9
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid60 → grid61: g2 guess 2 ∈ {2|4}
pending={g2}
deduce.grid61: naked-singles
- g5 is 7 by naked-single.
pending={g5}
deduce.grid61: hidden-singles
deduce.grid61.col4. a4 is 7 by hidden-single.
pending={a4}
deduce.grid61: naked-singles
deduce.grid61: hidden-singles
deduce.grid61: naked-pairs
two's heap=b2 {1|4}, h9 {2|7}, g6 {4|9}, g4 {4|9}, i3 {6|7}.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid61
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
| 7
|
|
|
|
|
|
| b
|
|
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
|
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 9
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid61 → grid62: b2 guess 1 ∈ {1|4}
pending={b2}
deduce.grid62: naked-singles
deduce.grid62: hidden-singles
deduce.grid62: naked-pairs
two's heap=a2 {4|6}, b7 {5|8}, c1 {4|6}, g4 {4|9}, g6 {4|9}, h9 {2|7}, i3 {6|7}.
Naked-pair {4|6} in cells {a2, c1} contained within {box1}, updating cells {a3, b1, c3}:
- a3: {2|4|5|6|9} → {2|5|9}.
- b1: {2|4|9} → {2|9}.
- c3: {4|5|6} → {5}. Solved.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
pending={c3}
deduce.grid62: naked-singles
deduce.grid62: hidden-singles
deduce.grid62: naked-pairs
two's heap=a2 {4|6}, c1 {4|6}, c8 {4|8}, h9 {2|7}, i3 {6|7}, b1 {2|9}, g4 {4|9}, g6 {4|9}, a3 {2|9}, b7 {5|8}.
Naked-pair {4|6} in cells {a2, c1} contained within {box1}, updating cells {a3, b1}:
Naked-pair {2|9} in cells {a3, b1} contained within {box1}, updating cells {a2, c1}:
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid62
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
| 7
|
|
|
|
|
|
| b
|
| 1
| 3
| 6
|
|
|
|
|
|
| c
|
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
|
|
| 8
| 5
|
|
| 9
| 1
|
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid62 → grid63: a2 guess 4 ∈ {4|6}
pending={a2}
deduce.grid63: naked-singles
- c1 is 6 by naked-single.
pending={c1}
deduce.grid63: hidden-singles
deduce.grid63.rowh. h1 is 4 by hidden-single.
pending={h1}
deduce.grid63: naked-singles
deduce.grid63: hidden-singles
deduce.grid63.rowh. h9 is 7 by hidden-single.
pending={h9}
deduce.grid63: naked-singles
deduce.grid63: hidden-singles
deduce.grid63.rowb. b8 is 7 by hidden-single.
pending={b8}
deduce.grid63: naked-singles
deduce.grid63: hidden-singles
deduce.grid63: naked-pairs
two's heap=i8 {2|5}, i1 {3|7}, i9 {2|5}, b7 {5|8}, i3 {6|7}, h2 {3|6}, g4 {4|9}, a8 {5|9}, g6 {4|9}, a3 {2|9}, c8 {4|8}, b1 {2|9}, f2 {6|8}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
- i4: {2|3|8} → {3|8}.
- i5: {1|2|3|6|8} → {1|3|6|8}.
- i6: {1|2|3|6|8} → {1|3|6|8}.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid63
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 4
|
| 7
|
|
|
|
|
|
| b
|
| 1
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid63 → grid64: a3 guess 2 ∈ {2|9}
pending={a3}
deduce.grid64: naked-singles
- b1 is 9 by naked-single.
pending={b1}
deduce.grid64: hidden-singles
deduce.grid64: naked-pairs
two's heap=a6 {1|3}, i9 {2|5}, i8 {2|5}, b9 {4|5}, h2 {3|6}, i1 {3|7}, f1 {2|7}, f2 {6|8}, g4 {4|9}, g6 {4|9}, c8 {4|8}, e3 {6|9}, i3 {6|7}, b7 {5|8}, i4 {3|8}, a8 {5|9}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid64
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 4
| 2
| 7
|
|
|
|
|
|
| b
| 9
| 1
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid64 → grid65: a6 guess 1 ∈ {1|3}
pending={a6}
deduce.grid65: naked-singles
deduce.grid65: hidden-singles
deduce.grid65.rowc. c9 is 1 by hidden-single.
pending={c9}
deduce.grid65: naked-singles
deduce.grid65: hidden-singles
deduce.grid65.rowe. e1 is 1 by hidden-single.
pending={e1}
deduce.grid65: naked-singles
deduce.grid65: hidden-singles
deduce.grid65.rowd. d7 is 1 by hidden-single.
pending={d7}
deduce.grid65: naked-singles
deduce.grid65: hidden-singles
deduce.grid65.rowi. i5 is 1 by hidden-single.
pending={i5}
deduce.grid65: naked-singles
deduce.grid65: hidden-singles
deduce.grid65.col9. a9 is 3 by hidden-single.
pending={a9}
deduce.grid65: naked-singles
- a5 is 5 by naked-single.
pending={a5}
- a7 is 6 by naked-single.
pending={a7}
- a8 is 9 by naked-single.
pending={a8}
deduce.grid65: hidden-singles
deduce.grid65.col8. i8 is 5 by hidden-single.
pending={i8}
deduce.grid65: naked-singles
- i9 is 2 by naked-single.
pending={i9}
deduce.grid65: hidden-singles
deduce.grid65: naked-pairs
two's heap=d1 {2|3}, b9 {4|5}, h2 {3|6}, f1 {2|7}, c8 {4|8}, g4 {4|9}, i1 {3|7}, i3 {6|7}, b7 {5|8}, f2 {6|8}, f7 {5|8}, e3 {6|9}, g6 {4|9}, e8 {2|8}, b5 {2|8}, e9 {6|9}, i4 {3|8}.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i6}:
Naked-pair {6|9} in cells {e3, e9} contained within {rowe}, updating cells {e2, e4, e8}:
- e2: {3|6|8} → {3|8}.
- e4: {2|3|8|9} → {2|3|8}.
grid65
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 4
| 2
| 7
| 5
| 1
| 6
| 9
| 3
|
| b
| 9
| 1
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
|
| 2
|
| 1
|
| d
|
| 5
|
|
|
| 7
| 1
|
|
|
| e
| 1
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
| 1
|
| 4
| 5
| 2
|
backtrack.grid65 → grid66: b5 guess 2 ∈ {2|8}
pending={b5}
deduce.grid66: naked-singles
deduce.grid66: hidden-singles
deduce.grid66.rowh. h6 is 2 by hidden-single.
pending={h6}
deduce.grid66: naked-singles
deduce.grid66: hidden-singles
deduce.grid66.rowf. f1 is 2 by hidden-single.
pending={f1}
deduce.grid66: naked-singles
- d1 is 3 by naked-single.
pending={d1}
- e2 is 8 by naked-single.
pending={e2}
- e8 is 2 by naked-single.
pending={e8}
- e4 is 3 by naked-single.
pending={e4}
- f2 is 6 by naked-single.
pending={f2}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- d8 is 8 by naked-single.
pending={d8}
- c8 is 4 by naked-single.
pending={c8}
- b9 is 5 by naked-single.
pending={b9}
- b7 is 8 by naked-single.
pending={b7}
- b6 is 4 by naked-single.
pending={b6}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 3 by naked-single.
pending={c6}
- d5 is 6 by naked-single.
pending={d5}
- d9 is 9 by naked-single.
pending={d9}
- d4 is 2 by naked-single.
pending={d4}
- e9 is 6 by naked-single.
pending={e9}
- f3 is 7 by naked-single.
pending={f3}
- f5 is 8 by naked-single.
pending={f5}
- f6 is 9 by naked-single.
pending={f6}
- f7 is 5 by naked-single.
pending={f7}
- f9 is 4 by naked-single.
pending={f9}
grid66 didn't work: naked-singles ran out of candidates.
…backtrack.grid65 again
backtrack.grid65 → grid67: b5 guess 8 ∈ {2|8}
pending={b5}
deduce.grid67: naked-singles
- b7 is 5 by naked-single.
pending={b7}
- b9 is 4 by naked-single.
pending={b9}
- b6 is 2 by naked-single.
pending={b6}
- c8 is 8 by naked-single.
pending={c8}
- e8 is 2 by naked-single.
pending={e8}
- d8 is 4 by naked-single.
pending={d8}
- f7 is 8 by naked-single.
pending={f7}
- f2 is 6 by naked-single.
pending={f2}
- d3 is 9 by naked-single.
pending={d3}
- d9 is 6 by naked-single.
pending={d9}
grid67 didn't work: naked-singles ran out of candidates.
…backtrack.grid65 again
grid65 didn't work: exhaustive search revealed no solution.
…backtrack.grid64 again
backtrack.grid64 → grid68: a6 guess 3 ∈ {1|3}
pending={a6}
deduce.grid68: naked-singles
deduce.grid68: hidden-singles
deduce.grid68.rowc. c9 is 3 by hidden-single.
pending={c9}
deduce.grid68: naked-singles
deduce.grid68: hidden-singles
deduce.grid68.rowc. c6 is 1 by hidden-single.
pending={c6}
deduce.grid68: naked-singles
- a5 is 5 by naked-single.
pending={a5}
- a8 is 9 by naked-single.
pending={a8}
deduce.grid68: hidden-singles
deduce.grid68.rowi. i5 is 1 by hidden-single.
pending={i5}
deduce.grid68: naked-singles
deduce.grid68: hidden-singles
deduce.grid68.col8. i8 is 5 by hidden-single.
pending={i8}
deduce.grid68: naked-singles
- i9 is 2 by naked-single.
pending={i9}
deduce.grid68: hidden-singles
deduce.grid68: naked-pairs
two's heap=b9 {4|5}, a7 {1|6}, h6 {2|6}, i1 {3|7}, a9 {1|6}, c4 {4|8}, h2 {3|6}, i3 {6|7}, i4 {3|8}, f1 {2|7}, f2 {6|8}, g4 {4|9}, g6 {4|9}, c8 {4|8}, b5 {2|8}, e3 {6|9}, e8 {2|8}, b7 {5|8}, i6 {6|8}.
Naked-pair {1|6} in cells {a7, a9} contained within {rowa, box3}, updating cells {b7, b9, c8}:
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i6}:
grid68
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 4
| 2
| 7
| 5
| 3
|
| 9
|
|
| b
| 9
| 1
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
| 1
| 2
|
| 3
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
| 1
|
| 4
| 5
| 2
|
backtrack.grid68 → grid69: a7 guess 1 ∈ {1|6}
pending={a7}
deduce.grid69: naked-singles
- a9 is 6 by naked-single.
pending={a9}
deduce.grid69: hidden-singles
deduce.grid69: naked-pairs
two's heap=b9 {4|5}, f1 {2|7}, h6 {2|6}, i1 {3|7}, e8 {2|8}, d7 {6|8}, h2 {3|6}, i3 {6|7}, i4 {3|8}, c8 {4|8}, f2 {6|8}, g4 {4|9}, g6 {4|9}, e3 {6|9}, b5 {2|8}, b7 {5|8}, c4 {4|8}, e9 {1|9}, i6 {6|8}.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i6}:
grid69
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 4
| 2
| 7
| 5
| 3
| 1
| 9
| 6
|
| b
| 9
| 1
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
| 1
| 2
|
| 3
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
| 1
|
| 4
| 5
| 2
|
backtrack.grid69 → grid70: b5 guess 2 ∈ {2|8}
pending={b5}
deduce.grid70: naked-singles
deduce.grid70: hidden-singles
deduce.grid70.rowh. h6 is 2 by hidden-single.
pending={h6}
deduce.grid70: naked-singles
deduce.grid70: hidden-singles
deduce.grid70.rowf. f1 is 2 by hidden-single.
pending={f1}
deduce.grid70: naked-singles
deduce.grid70: hidden-singles
deduce.grid70.rowf. f3 is 7 by hidden-single.
pending={f3}
deduce.grid70: naked-singles
- i3 is 6 by naked-single.
pending={i3}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- e9 is 1 by naked-single.
pending={e9}
- d9 is 9 by naked-single.
pending={d9}
- e1 is 3 by naked-single.
pending={e1}
- d1 is 1 by naked-single.
pending={d1}
- h2 is 3 by naked-single.
pending={h2}
- h5 is 6 by naked-single.
pending={h5}
- f5 is 8 by naked-single.
pending={f5}
- d5 is 3 by naked-single.
pending={d5}
- d4 is 2 by naked-single.
pending={d4}
- d8 is 8 by naked-single.
pending={d8}
- c8 is 4 by naked-single.
pending={c8}
- b9 is 5 by naked-single.
pending={b9}
- b7 is 8 by naked-single.
pending={b7}
- b6 is 4 by naked-single.
pending={b6}
- c4 is 8 by naked-single.
pending={c4}
- d7 is 6 by naked-single.
pending={d7}
grid70 didn't work: naked-singles ran out of candidates.
…backtrack.grid69 again
backtrack.grid69 → grid71: b5 guess 8 ∈ {2|8}
pending={b5}
deduce.grid71: naked-singles
- b7 is 5 by naked-single.
pending={b7}
- b9 is 4 by naked-single.
pending={b9}
- b6 is 2 by naked-single.
pending={b6}
- c4 is 4 by naked-single.
pending={c4}
- c8 is 8 by naked-single.
pending={c8}
- e8 is 2 by naked-single.
pending={e8}
- d8 is 4 by naked-single.
pending={d8}
- g4 is 9 by naked-single.
pending={g4}
- g6 is 4 by naked-single.
pending={g6}
- h6 is 6 by naked-single.
pending={h6}
- h2 is 3 by naked-single.
pending={h2}
- h5 is 2 by naked-single.
pending={h5}
- f5 is 6 by naked-single.
pending={f5}
- d5 is 3 by naked-single.
pending={d5}
- e4 is 8 by naked-single.
pending={e4}
- d4 is 2 by naked-single.
pending={d4}
- d1 is 1 by naked-single.
pending={d1}
- d9 is 9 by naked-single.
pending={d9}
- d3 is 6 by naked-single.
pending={d3}
- d7 is 8 by naked-single.
pending={d7}
- e1 is 3 by naked-single.
pending={e1}
grid71 didn't work: naked-singles ran out of candidates.
…backtrack.grid69 again
grid69 didn't work: exhaustive search revealed no solution.
…backtrack.grid68 again
backtrack.grid68 → grid72: a7 guess 6 ∈ {1|6}
pending={a7}
deduce.grid72: naked-singles
- a9 is 1 by naked-single.
pending={a9}
deduce.grid72: hidden-singles
deduce.grid72.rowe. e1 is 1 by hidden-single.
pending={e1}
deduce.grid72: naked-singles
deduce.grid72: hidden-singles
deduce.grid72.rowd. d7 is 1 by hidden-single.
pending={d7}
deduce.grid72: naked-singles
deduce.grid72: hidden-singles
deduce.grid72: naked-pairs
two's heap=d1 {2|3}, h6 {2|6}, b9 {4|5}, f1 {2|7}, e8 {2|8}, b5 {2|8}, h2 {3|6}, i1 {3|7}, i3 {6|7}, c8 {4|8}, f2 {6|8}, f7 {5|8}, g4 {4|9}, e3 {6|9}, g6 {4|9}, b7 {5|8}, c4 {4|8}, e9 {6|9}, i4 {3|8}, i6 {6|8}.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i6}:
Naked-pair {6|9} in cells {e3, e9} contained within {rowe}, updating cells {e2, e4, e8}:
- e2: {3|6|8} → {3|8}.
- e4: {2|3|8|9} → {2|3|8}.
grid72
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 4
| 2
| 7
| 5
| 3
| 6
| 9
| 1
|
| b
| 9
| 1
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
| 1
| 2
|
| 3
|
| d
|
| 5
|
|
|
| 7
| 1
|
|
|
| e
| 1
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
| 1
|
| 4
| 5
| 2
|
backtrack.grid72 → grid73: b5 guess 2 ∈ {2|8}
pending={b5}
deduce.grid73: naked-singles
deduce.grid73: hidden-singles
deduce.grid73.rowh. h6 is 2 by hidden-single.
pending={h6}
deduce.grid73: naked-singles
deduce.grid73: hidden-singles
deduce.grid73.rowf. f1 is 2 by hidden-single.
pending={f1}
deduce.grid73: naked-singles
- d1 is 3 by naked-single.
pending={d1}
- e2 is 8 by naked-single.
pending={e2}
- e8 is 2 by naked-single.
pending={e8}
- e4 is 3 by naked-single.
pending={e4}
- f2 is 6 by naked-single.
pending={f2}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- d8 is 8 by naked-single.
pending={d8}
- c8 is 4 by naked-single.
pending={c8}
- b9 is 5 by naked-single.
pending={b9}
- b7 is 8 by naked-single.
pending={b7}
- b6 is 4 by naked-single.
pending={b6}
- c4 is 8 by naked-single.
pending={c4}
- d5 is 6 by naked-single.
pending={d5}
- d9 is 9 by naked-single.
pending={d9}
- d4 is 2 by naked-single.
pending={d4}
- e9 is 6 by naked-single.
pending={e9}
- f3 is 7 by naked-single.
pending={f3}
- f5 is 8 by naked-single.
pending={f5}
- f6 is 9 by naked-single.
pending={f6}
- f7 is 5 by naked-single.
pending={f7}
- f9 is 4 by naked-single.
pending={f9}
grid73 didn't work: naked-singles ran out of candidates.
…backtrack.grid72 again
backtrack.grid72 → grid74: b5 guess 8 ∈ {2|8}
pending={b5}
deduce.grid74: naked-singles
- b7 is 5 by naked-single.
pending={b7}
- b9 is 4 by naked-single.
pending={b9}
- b6 is 2 by naked-single.
pending={b6}
- c4 is 4 by naked-single.
pending={c4}
- c8 is 8 by naked-single.
pending={c8}
- e8 is 2 by naked-single.
pending={e8}
- d8 is 4 by naked-single.
pending={d8}
- f7 is 8 by naked-single.
pending={f7}
- f2 is 6 by naked-single.
pending={f2}
- d3 is 9 by naked-single.
pending={d3}
- d9 is 6 by naked-single.
pending={d9}
grid74 didn't work: naked-singles ran out of candidates.
…backtrack.grid72 again
grid72 didn't work: exhaustive search revealed no solution.
…backtrack.grid68 again
grid68 didn't work: exhaustive search revealed no solution.
…backtrack.grid64 again
grid64 didn't work: exhaustive search revealed no solution.
…backtrack.grid63 again
backtrack.grid63 → grid75: a3 guess 9 ∈ {2|9}
pending={a3}
deduce.grid75: naked-singles
- a8 is 5 by naked-single.
pending={a8}
- b1 is 2 by naked-single.
pending={b1}
- b7 is 8 by naked-single.
pending={b7}
- b5 is 5 by naked-single.
pending={b5}
- b6 is 4 by naked-single.
pending={b6}
- b9 is 9 by naked-single.
pending={b9}
- c8 is 4 by naked-single.
pending={c8}
- g6 is 9 by naked-single.
pending={g6}
- g4 is 4 by naked-single.
pending={g4}
- i8 is 2 by naked-single.
pending={i8}
- i9 is 5 by naked-single.
pending={i9}
deduce.grid75: hidden-singles
deduce.grid75.rowf. f1 is 9 by hidden-single.
deduce.grid75.rowf. f7 is 5 by hidden-single.
pending={f1, f7}
deduce.grid75: naked-singles
deduce.grid75: hidden-singles
deduce.grid75.rowf. f3 is 7 by hidden-single.
pending={f3}
deduce.grid75: naked-singles
- i3 is 6 by naked-single.
pending={i3}
- e3 is 2 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- h2 is 3 by naked-single.
pending={h2}
- i1 is 7 by naked-single.
pending={i1}
deduce.grid75: hidden-singles
deduce.grid75.rowf. f9 is 4 by hidden-single.
pending={f9}
deduce.grid75: naked-singles
deduce.grid75: hidden-singles
deduce.grid75.col4. d4 is 2 by hidden-single.
pending={d4}
deduce.grid75: naked-singles
deduce.grid75: hidden-singles
deduce.grid75.rowd. d8 is 9 by hidden-single.
pending={d8}
deduce.grid75: naked-singles
- e8 is 8 by naked-single.
pending={e8}
- e2 is 6 by naked-single.
pending={e2}
- e9 is 1 by naked-single.
pending={e9}
- c9 is 3 by naked-single.
pending={c9}
- a9 is 6 by naked-single.
pending={a9}
- a7 is 1 by naked-single.
pending={a7}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- d7 is 6 by naked-single.
pending={d7}
grid75 didn't work: naked-singles ran out of candidates.
…backtrack.grid63 again
grid63 didn't work: exhaustive search revealed no solution.
…backtrack.grid62 again
backtrack.grid62 → grid76: a2 guess 6 ∈ {4|6}
pending={a2}
deduce.grid76: naked-singles
- c1 is 4 by naked-single.
pending={c1}
- c8 is 8 by naked-single.
pending={c8}
- b7 is 5 by naked-single.
pending={b7}
- a7 is 1 by naked-single.
pending={a7}
- c4 is 3 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- c9 is 6 by naked-single.
pending={c9}
deduce.grid76: hidden-singles
deduce.grid76.rowa. a5 is 5 by hidden-single.
deduce.grid76.rowa. a9 is 3 by hidden-single.
pending={a5, a9}
deduce.grid76: naked-singles
deduce.grid76: hidden-singles
deduce.grid76.rowf. f9 is 5 by hidden-single.
pending={f9}
deduce.grid76: naked-singles
deduce.grid76: hidden-singles
deduce.grid76.rowh. h2 is 4 by hidden-single.
pending={h2}
deduce.grid76: naked-singles
- f2 is 8 by naked-single.
pending={f2}
- e2 is 3 by naked-single.
pending={e2}
- f7 is 6 by naked-single.
pending={f7}
- d7 is 8 by naked-single.
pending={d7}
- f5 is 2 by naked-single.
pending={f5}
- b5 is 8 by naked-single.
pending={b5}
- d4 is 9 by naked-single.
pending={d4}
- e4 is 8 by naked-single.
pending={e4}
grid76 didn't work: naked-singles ran out of candidates.
…backtrack.grid62 again
grid62 didn't work: exhaustive search revealed no solution.
…backtrack.grid61 again
backtrack.grid61 → grid77: b2 guess 4 ∈ {1|4}
pending={b2}
deduce.grid77: naked-singles
deduce.grid77: hidden-singles
deduce.grid77.rowh. h1 is 4 by hidden-single.
pending={h1}
deduce.grid77: naked-singles
deduce.grid77: hidden-singles
deduce.grid77.rowh. h9 is 7 by hidden-single.
pending={h9}
deduce.grid77: naked-singles
deduce.grid77: hidden-singles
deduce.grid77.rowb. b8 is 7 by hidden-single.
pending={b8}
deduce.grid77: naked-singles
deduce.grid77: hidden-singles
deduce.grid77: naked-pairs
two's heap=i8 {2|5}, i9 {2|5}, h2 {3|6}, c1 {1|6}, a2 {1|6}, g6 {4|9}, c3 {5|6}, f2 {6|8}, i3 {6|7}, g4 {4|9}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
- i4: {2|3|8} → {3|8}.
- i5: {1|2|3|6|8} → {1|3|6|8}.
- i6: {1|2|3|6|8} → {1|3|6|8}.
Naked-pair {1|6} in cells {a2, c1} contained within {box1}, updating cells {a3, b1, c3}:
- a3: {2|5|6|9} → {2|5|9}.
- b1: {1|2|9} → {2|9}.
- c3: {5|6} → {5}. Solved.
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
pending={c3}
deduce.grid77: naked-singles
deduce.grid77: hidden-singles
deduce.grid77: naked-pairs
two's heap=i8 {2|5}, c1 {1|6}, i9 {2|5}, h2 {3|6}, i3 {6|7}, a2 {1|6}, g4 {4|9}, g6 {4|9}, a3 {2|9}, c8 {4|8}, i4 {3|8}, b1 {2|9}, f2 {6|8}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {1|6} in cells {a2, c1} contained within {box1}, updating cells {a3, b1}:
Naked-pair {2|9} in cells {a3, b1} contained within {box1}, updating cells {a2, c1}:
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid77
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
|
|
| 7
|
|
|
|
|
|
| b
|
| 4
| 3
| 6
|
|
|
| 7
|
|
| c
|
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid77 → grid78: a2 guess 1 ∈ {1|6}
pending={a2}
deduce.grid78: naked-singles
- c1 is 6 by naked-single.
pending={c1}
deduce.grid78: hidden-singles
deduce.grid78: naked-pairs
two's heap=i8 {2|5}, a7 {5|6}, i9 {2|5}, i1 {3|7}, i3 {6|7}, h2 {3|6}, g6 {4|9}, a3 {2|9}, c8 {4|8}, f2 {6|8}, i4 {3|8}, g4 {4|9}, b1 {2|9}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid78
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
|
| 7
|
|
|
|
|
|
| b
|
| 4
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid78 → grid79: a3 guess 2 ∈ {2|9}
pending={a3}
deduce.grid79: naked-singles
- b1 is 9 by naked-single.
pending={b1}
deduce.grid79: hidden-singles
deduce.grid79: naked-pairs
two's heap=a6 {3|4}, b9 {1|5}, i8 {2|5}, i9 {2|5}, h2 {3|6}, i1 {3|7}, a7 {5|6}, a5 {3|5}, g4 {4|9}, g6 {4|9}, c8 {4|8}, e3 {6|9}, i3 {6|7}, i4 {3|8}, f1 {2|7}, f2 {6|8}.
Naked-pair {2|5} in cells {i8, i9} contained within {rowi, box9}, updating cells {i1, i3, i4, i5, i6}:
Naked-pair {4|9} in cells {g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid79
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 2
| 7
|
|
|
|
|
|
| b
| 9
| 4
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
|
|
|
backtrack.grid79 → grid80: a5 guess 3 ∈ {3|5}
pending={a5}
deduce.grid80: naked-singles
- a6 is 4 by naked-single.
pending={a6}
- c4 is 8 by naked-single.
pending={c4}
- c6 is 1 by naked-single.
pending={c6}
- b6 is 2 by naked-single.
pending={b6}
- b5 is 5 by naked-single.
pending={b5}
- b9 is 1 by naked-single.
pending={b9}
- b7 is 8 by naked-single.
pending={b7}
- c8 is 4 by naked-single.
pending={c8}
- c9 is 3 by naked-single.
pending={c9}
- g6 is 9 by naked-single.
pending={g6}
- g4 is 4 by naked-single.
pending={g4}
- i4 is 3 by naked-single.
pending={i4}
- h6 is 6 by naked-single.
pending={h6}
- f6 is 8 by naked-single.
pending={f6}
- f2 is 6 by naked-single.
pending={f2}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- e4 is 2 by naked-single.
pending={e4}
- d4 is 9 by naked-single.
pending={d4}
- d5 is 6 by naked-single.
pending={d5}
- d7 is 1 by naked-single.
pending={d7}
- d9 is 2 by naked-single.
pending={d9}
- d1 is 3 by naked-single.
pending={d1}
- d8 is 8 by naked-single.
pending={d8}
- e1 is 1 by naked-single.
pending={e1}
- e2 is 8 by naked-single.
pending={e2}
grid80 didn't work: naked-singles ran out of candidates.
…backtrack.grid79 again
backtrack.grid79 → grid81: a5 guess 5 ∈ {3|5}
pending={a5}
deduce.grid81: naked-singles
- a7 is 6 by naked-single.
pending={a7}
deduce.grid81: hidden-singles
deduce.grid81.col8. i8 is 5 by hidden-single.
pending={i8}
deduce.grid81: naked-singles
- i9 is 2 by naked-single.
pending={i9}
deduce.grid81: hidden-singles
deduce.grid81: naked-pairs
two's heap=a6 {3|4}, d7 {1|8}, b9 {1|5}, f7 {5|8}, c8 {4|8}, h2 {3|6}, f1 {2|7}, a8 {4|9}, f2 {6|8}, g4 {4|9}, g6 {4|9}, e3 {6|9}, i1 {3|7}, i3 {6|7}, i4 {3|8}.
Naked-pair {4|9} in cells {a8, g4, g6} contained within {rowg, box8}, updating cells {h5, h6, i4, i5, i6}:
grid81
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 2
| 7
| 5
|
| 6
|
|
|
| b
| 9
| 4
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
|
| 9
|
| 2
|
|
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
|
|
| 3
|
|
| g
| 5
| 2
| 1
|
| 7
|
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
|
|
| 4
| 5
| 2
|
backtrack.grid81 → grid82: a6 guess 3 ∈ {3|4}
pending={a6}
deduce.grid82: naked-singles
deduce.grid82: hidden-singles
deduce.grid82.rowc. c9 is 3 by hidden-single.
pending={c9}
deduce.grid82: naked-singles
deduce.grid82: hidden-singles
deduce.grid82.rowc. c6 is 1 by hidden-single.
pending={c6}
deduce.grid82: naked-singles
deduce.grid82: hidden-singles
deduce.grid82.rowi. i5 is 1 by hidden-single.
pending={i5}
deduce.grid82: naked-singles
deduce.grid82: hidden-singles
deduce.grid82.col6. g6 is 4 by hidden-single.
pending={g6}
deduce.grid82: naked-singles
- g4 is 9 by naked-single.
pending={g4}
deduce.grid82: hidden-singles
deduce.grid82.col4. c4 is 4 by hidden-single.
pending={c4}
deduce.grid82: naked-singles
- c8 is 8 by naked-single.
pending={c8}
deduce.grid82: hidden-singles
deduce.grid82.col6. f6 is 9 by hidden-single.
pending={f6}
deduce.grid82: naked-singles
deduce.grid82: hidden-singles
deduce.grid82: naked-pairs
two's heap=b7 {1|5}, f1 {2|7}, b9 {1|5}, i3 {6|7}, b5 {2|8}, h2 {3|6}, h6 {2|6}, i4 {3|8}, i6 {6|8}, b6 {2|8}, f2 {6|8}, a8 {4|9}, f7 {5|8}, d7 {1|8}, i1 {3|7}, e3 {6|9}, e8 {2|9}, a9 {4|9}.
Naked-pair {1|5} in cells {b7, b9} contained within {rowb, box3}, updating cells {a8, a9, b5, b6}:
Naked-pair {2|8} in cells {b5, b6} contained within {rowb, box2}, updating cells {b7, b9}:
Naked-pair {4|9} in cells {a8, a9} contained within {rowa, box3}, updating cells {b7, b9}:
grid82
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 2
| 7
| 5
| 3
| 6
|
|
|
| b
| 9
| 4
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
| 4
| 9
| 1
| 2
| 8
| 3
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
| 9
|
| 3
|
|
| g
| 5
| 2
| 1
| 9
| 7
| 4
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
| 1
|
| 4
| 5
| 2
|
backtrack.grid82 → grid83: a8 guess 4 ∈ {4|9}
pending={a8}
deduce.grid83: naked-singles
- a9 is 9 by naked-single.
pending={a9}
deduce.grid83: hidden-singles
deduce.grid83: naked-pairs
two's heap=b7 {1|5}, b9 {1|5}, h6 {2|6}, e9 {1|6}, f1 {2|7}, b5 {2|8}, h2 {3|6}, i3 {6|7}, b6 {2|8}, d7 {1|8}, f2 {6|8}, d8 {2|9}, f7 {5|8}, e3 {6|9}, i1 {3|7}, e8 {2|9}, i4 {3|8}, i6 {6|8}.
Naked-pair {1|5} in cells {b7, b9} contained within {rowb, box3}, updating cells {b5, b6}:
Naked-pair {2|8} in cells {b5, b6} contained within {rowb, box2}, updating cells {b7, b9}:
Naked-pair {2|9} in cells {d8, e8} contained within {col8, box6}, updating cells {d7, d9, e9, f7, f9}:
grid83
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 2
| 7
| 5
| 3
| 6
| 4
| 9
|
| b
| 9
| 4
| 3
| 6
|
|
|
| 7
|
|
| c
| 6
| 7
| 5
| 4
| 9
| 1
| 2
| 8
| 3
|
| d
|
| 5
|
|
|
| 7
|
|
|
|
| e
|
|
|
|
| 4
| 5
| 7
|
|
|
| f
|
|
|
| 1
|
| 9
|
| 3
|
|
| g
| 5
| 2
| 1
| 9
| 7
| 4
| 3
| 6
| 8
|
| h
| 4
|
| 8
| 5
|
|
| 9
| 1
| 7
|
| i
|
| 9
|
|
| 1
|
| 4
| 5
| 2
|
backtrack.grid83 → grid84: b5 guess 2 ∈ {2|8}
pending={b5}
deduce.grid84: naked-singles
- b6 is 8 by naked-single.
pending={b6}
- i6 is 6 by naked-single.
pending={i6}
- h5 is 3 by naked-single.
pending={h5}
- h2 is 6 by naked-single.
pending={h2}
- f2 is 8 by naked-single.
pending={f2}
- e2 is 3 by naked-single.
pending={e2}
- f5 is 6 by naked-single.
pending={f5}
- d5 is 8 by naked-single.
pending={d5}
- d7 is 1 by naked-single.
pending={d7}
- b7 is 5 by naked-single.
pending={b7}
- b9 is 1 by naked-single.
pending={b9}
- d1 is 2 by naked-single.
pending={d1}
- d4 is 3 by naked-single.
pending={d4}
- d8 is 9 by naked-single.
pending={d8}
- e1 is 1 by naked-single.
pending={e1}
- e4 is 2 by naked-single.
pending={e4}
grid84 didn't work: naked-singles ran out of candidates.
…backtrack.grid83 again
backtrack.grid83 → grid85: b5 guess 8 ∈ {2|8}
pending={b5}
deduce.grid85: naked-singles
- b6 is 2 by naked-single.
pending={b6}
- h6 is 6 by naked-single.
pending={h6}
- h2 is 3 by naked-single.
pending={h2}
- h5 is 2 by naked-single.
pending={h5}
- f5 is 6 by naked-single.
pending={f5}
- d5 is 3 by naked-single.
pending={d5}
- f2 is 8 by naked-single.
pending={f2}
- e2 is 6 by naked-single.
pending={e2}
- e3 is 9 by naked-single.
pending={e3}
- d3 is 4 by naked-single.
pending={d3}
- e8 is 2 by naked-single.
pending={e8}
- d8 is 9 by naked-single.
pending={d8}
- e4 is 8 by naked-single.
pending={e4}
- d4 is 2 by naked-single.
pending={d4}
- d1 is 1 by naked-single.
pending={d1}
- d7 is 8 by naked-single.
pending={d7}
- d9 is 6 by naked-single.
pending={d9}
- e1 is 3 by naked-single.
pending={e1}
- e9 is 1 by naked-single.
pending={e9}
- b9 is 5 by naked-single.
pending={b9}
- b7 is 1 by naked-single.
pending={b7}
- f3 is 7 by naked-single.
pending={f3}
- f1 is 2 by naked-single.
pending={f1}
- f7 is 5 by naked-single.
pending={f7}
- f9 is 4 by naked-single.
pending={f9}
- i1 is 7 by naked-single.
pending={i1}
- i3 is 6 by naked-single.
pending={i3}
- i4 is 3 by naked-single.
pending={i4}
- i6 is 8 by naked-single.
pending={i6}
deduce.grid85. Solved.
grid85
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 8
| 1
| 2
| 7
| 5
| 3
| 6
| 4
| 9
|
| b
| 9
| 4
| 3
| 6
| 8
| 2
| 1
| 7
| 5
|
| c
| 6
| 7
| 5
| 4
| 9
| 1
| 2
| 8
| 3
|
| d
| 1
| 5
| 4
| 2
| 3
| 7
| 8
| 9
| 6
|
| e
| 3
| 6
| 9
| 8
| 4
| 5
| 7
| 2
| 1
|
| f
| 2
| 8
| 7
| 1
| 6
| 9
| 5
| 3
| 4
|
| g
| 5
| 2
| 1
| 9
| 7
| 4
| 3
| 6
| 8
|
| h
| 4
| 3
| 8
| 5
| 2
| 6
| 9
| 1
| 7
|
| i
| 7
| 9
| 6
| 3
| 1
| 8
| 4
| 5
| 2
|
grid85. Copying solution to raw grid.